String常用方法总结
?
和長度有關的方法
返回類型 方法名 作用
int length() 得到一個字符串的字符個數(一個中文是一個字符,一個英文是一個字符,一個轉義字符是一個字符)
和數組有關的方法
返回類型 方法名 作用
byte[] getBytes() 將一個字符串轉換成字節數組
char[] toCharArray() 將一個字符串轉換成字符數組
String[] split(String) 將一個字符串按照指定內容劈開,根據給定正則表達式的匹配拆分此字符串。
例如:
String user="張三,1234 13673738888";String[] strs = user.split(",| ");//用“逗號”或“空格”進行分割和判斷有關的方法
返回類型 方法名 作用
boolean equals(String) 判斷兩個字符串的內容是否一模一樣
boolean equalsIgnoreCase(String) 忽略大小寫的比較兩個字符串的內容是否一模一樣
boolean contains(String) 判斷一個字符串里面是否包含指定的內容
boolean startsWith(String) 判斷一個字符串是否以指定的內容開頭
boolean endsWith(String) 判斷一個字符串是否以指定的內容結尾
int compareTo(String ):按字典順序比較兩個字符串的大小,相等返回0,大于返回正數,小于返回負數。
int compareToIgnoreCase( ):比較兩個字符串的大小,不考慮大小寫
和改變內容有關的方法
和改變內容有關的方法,都不會直接操作原本的字符串 而是將符合條件的字符串返回給我們,所以注意接收
返回類型 方法名 作用
String toUpperCase() 將一個字符串全部轉換成大寫
String toLowerCase() 將一個字符串全部轉換成小寫
String replace(String,String) 將某個內容全部替換成指定內容
String replaceAll(String,String) 將某個內容全部替換成指定內容,支持正則
String repalceFirst(String,String) 將第一次出現的某個內容替換成指定的內容
String substring(int) 從指定下標開始一直截取到字符串的最后,返回一個新的字符串,它是此字符串的一個子字符串。
String substring(int,int) 從下標x截取到下標y-1對應的元素,返回一個新字符串,它是此字符串的一個子字符串。(左包含右不包含)
String trim() 去除一個字符串的前后空格
和位置有關的方法
返回類型 方法名 作用
char charAt(int) 得到指定下標位置對應的字符
int indexOf(String) 得到指定內容第一次出現的下標,如果未出現該字符,則返回 -1。
int indexOf(int ch,int fromIndex): 在此對象表示的字符序列中第一次出現的大于或等于 fromIndex 的字符的索引;如果未出現該字符,則返回 -1。
int lastIndexOf(String) 得到指定內容最后一次出現的下標,如果未出現該字符,則返回 -1。
?
String方法練習:用不同的方法統計葡萄出現的次數
public class TestString {public static void main(String[]args) {String str = "吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮"; //請統計葡萄 出現的次數// String str = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //請統計葡萄 出現的次數// 第一種String str1 = str.replace("葡萄", " ");int index = str.indexOf("葡萄", 4);char[]data = str1.toCharArray();int count = 0;for (char a: data) {if (a == ' ') {count++;}}System.out.println(count);//第二種/*int count = 0;int x = 0;while (x != -1) {x = str.indexOf("葡萄");if (x != -1) {count++;str = str.replaceFirst("葡萄", "");}}System.out.println(count);*///第三種/* for (int x = 0; x < str.length(); x++) {if (str.contains("葡萄")) {str = str.replaceFirst("葡萄", "");} else {System.out.println(x);break;}}*///第四種/*String str1 = "葡萄不吐葡萄皮,不吃葡萄倒吐葡萄"; //請統計葡萄 出現的次數String[]data = str1.split("葡萄");if (!str1.endsWith("葡萄")) {//這里startsWith("葡萄")在split時,會在開頭產生空串System.out.println(data.length - 1);} else {System.out.println(data.length);}*///第五種/*int count = 0;int x = 0;while (x != -1) {x = str.indexOf("葡萄");if (x != -1) {if ((x + 2) < str.length()) {str = str.substring(x + 2);}count++;}}System.out.println(count);*///第六種/* String str2 = str.replace("葡萄", "");int length = str2.length();System.out.println((str.length() - str2.length()) / 2);*/}}?練習中文對編碼的影響
public class StringDemo {public static void main(String[] args) {String s="123456789中國";System.out.println(s.length()); //11System.out.println(s.getBytes().length);//GBK下是13, UTF-8下是15 System.out.println(hasChinese(s));s="12中國asd湖12南6城市學院";print(s);}private static void print(String s) {char[] ch=s.toCharArray();for(char c:ch){if((c+"").getBytes().length>1){//漢字的字節數大于1System.out.println("中文字符:"+c);}else if(c>='a'&&c<='z' || c>='A'&& c<='Z'){System.out.println("英文字符:"+c);}else if(c>='0'&&c<='9'){System.out.println("數字:"+c);}}}private static boolean hasChinese(String s) {if(s.getBytes().length>s.length()){//只有含有漢字時,字符轉換的字節長度才會大于字符串長度return true;}return false;} }練習正則表達式
public class StringDemo2 {public static void main(String[] args) {//1、字符串比較大小String s1="H234567中國";String s2="Hello Java";System.out.println("1、"+s1.compareTo(s2));// 返回兩個字符串之差(第一個不同字符的差,即‘2’與‘e’的差: -51)//2、字符串位置查找String s3="adc256sadf";String s4="c2";System.out.println("2、"+s3.indexOf(s4));//2//3、查找姓名中帶“飛”字的人,查找姓“張”的人。String[] names= { "張三", "張無忌", "趙敏", "張飛", "岳飛", "飛龍張" };System.out.print("3、帶“飛”的人:");for(String name:names){if(name.indexOf("飛")>=0){System.out.print(name+" ");}}System.out.println();System.out.print(" 姓“張”的人:");for(String name:names){if(name.indexOf("張")==0){System.out.print(name+" ");}}System.out.println();// 4、查找擴展名為“.java”的文件名。String[] filenames = { "aa.java", "cc.doc", "34.bat", "33.java.c","java.exe", "c:\\a\\a.java" };String ss=".java";System.out.print("4、擴展名為.java文件名:");for(String name:filenames){if(name.endsWith(ss)){System.out.print(name+" ");}}System.out.println();//5、substring()String c ="abcd".substring(2,3);// 相當于數學中的:[2,3)System.out.println("5、“abcd”.substring(2,3)= "+c);//6、split()String user="張三,1234,13673738888";String strs[] = user.split(",");System.out.print("6、");for(String s:strs){System.out.print(s+" ");}System.out.println();user="張三,1234 13673738888";strs = user.split(",| ");//7、用“逗號”或“空格”進行分割System.out.print("7、");for(String s:strs){System.out.print(s+" ");}System.out.println();user="aa.bb.cc,dd,ee fff";strs = user.split("\\.|,| ");//8、“.”號是特殊字符,因此要用轉義字符,而且要加兩個//strs = user.split("[.]|,| ");//“[]”也是轉義字符System.out.print("8、");for(String s:strs){System.out.print(s+" ");}System.out.println();String us ="張三|1234|13673738888";//strs = us.split("\\|");//9、“|”不能用這種轉義的方式分割,這種情況下可先采用字符替換us=us.replace("|", ",");//replace()返回的是一個新的字符串strs = us.split(",");System.out.print("9、");for(String s:strs){System.out.print(s+" ");}} }?
轉載于:https://www.cnblogs.com/leilong/p/8629620.html
總結
以上是生活随笔為你收集整理的String常用方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: #tomcat#生成的jsp转换问题
- 下一篇: cmake find_package 中