String類和StringBuffer
阿新 • • 發佈:2018-12-21
## String類的初始化
public class Example01 { public static void main(String[] args){ String str1 = new String(); //建立一個空的字串 String str2 = new String("abcd"); //建立一個內容為abcd的字串 char[] charArray = new char[]{'A','B','C'}; //建立一個內容為字元陣列的字串 String str3 = new String(charArray); System.out.println("a" + str1 + "b"); System.out.println(str2); System.out.println(str3); } } *字串的基本操作* char charAt(int index); int indexOf(String str); int lastIndexOf(String str); public class Example01{ public static void main(String[] args){ String s = "ababcdedcda";//宣告字串 System.out.println("字串的長度為:" + s.length()); System.out.println("字串中第一個字元:" + s.charAt(0)); System.out.println("字元c第一次出現的位置:" + s.indexOf('c')); System.out.println("字元c最後一次出現的位置:" + s.lastIndexOf('c')); System.out.println("子字串第一次出現的位置:" + s.indexOf("ab")); System.out.println("子字串最後一次出現的位置:" + s.lastIndexOf("ab")); } } *字串的轉換操作* char[] toCharArray() String toUpperCase() static String valueOf(int i) public class Example01{ public static void main(String[] args){ String str = "abcd"; System.out.print("將字串轉換為字元陣列後的結果:"); char[] charArray = str.toCharArray();//字串轉換為字元陣列 for(int i = 0;i<charArray.length;i++){ if(i != charArray.length - 1){ //如果不是陣列的最後一個元素,在元素後加上逗號 System.out.print(charArray[i] + ","); }else{ System.out.println(charArray[i]); } } System.out.println("將int值轉換為String型別之後的結果:" + String.valueOf(12)); System.out.println("將字串轉換成大寫之後的結果:" + str.toUpperCase()); } } *字串的替換和去除空格操作* String replace(CharSequence oldstr,CharSequence newstr); String trim(); 去除原字串首尾空格 public class Example01{ public static void main(String[] args){ String s = "itcast"; //字串替換操作 System.out.println("將it替換成cn.it的結果:" + s.replace("it", "cn.it")); //字串去除空格操作 String s1 = " i t c a s t "; System.out.println("去除字串兩端空格後的結果:" + s1.trim()); System.out.println("去除字串中所有空格後的結果:" + s1.replace(" ","")); } }
字串的判斷操作(true or false)
// boolean equals(Object anObject) //boolean isEmpty() //boolean startsWith(String prefix) //boolean contains(CharSequence cs) public class Example01{ public static void main(String[] args){ String s1 = "String"; String s2 = "Str"; System.out.println("判斷是否以字串Str開頭:" + s1.startsWith("Str")); System.out.println("判斷是否以字串ng結尾:" + s1.endsWith("ng")); System.out.println("判斷是否包含字串tri:" + s1.contains("tri")); System.out.println("判斷字串是否為空:" + s1.isEmpty()); System.out.println("判斷兩個字串是否相等" + s1.equals(s2)); } } *字串的擷取和分割* public class Example01{ public static void main(String[] args){ String str = "羽毛球-籃球-兵乓球"; System.out.println("從第5個字元擷取到末尾的結果:" + str.substring(4)); System.out.println("從第5個字元擷取到第6個字元的結果:" + str.substring(4,6)); System.out.println("分割後的字串陣列中的元素依次為:"); String[] strArray = str.split("-"); for(int i = 0;i<strArray.length;i++){ if(i != strArray.length - 1){ System.out.println(strArray[i] + ","); }else{ System.out.println(strArray[i]); } } } } *StringBuffer類* //StringBuffer類與String最大的區別在於內容和長度可修改 public class Example01{ public static void main(String[] args){ StringBuffer sb1 = new StringBuffer("abc"); System.out.println("1,新增——————————————————————"); add(); System.out.println("1,新增——————————————————————"); remove(); System.out.println("1,新增——————————————————————"); alter(); } public static void add(){ StringBuffer sb = new StringBuffer(); sb.append("abcdefg"); System.out.println("append新增結果:" + sb); sb.insert(2, "123"); System.out.println("insert新增結果:" + sb); } public static void remove(){ StringBuffer sb = new StringBuffer("abcdefg"); sb.delete(1, 5); System.out.println("刪除指定結果:" + sb); sb.deleteCharAt(2); System.out.println("刪除指定結果:" + sb); sb.delete(0, sb.length());//清空緩衝區 System.out.println("清空緩衝區結果:" + sb); } public static void alter(){ StringBuffer sb = new StringBuffer("abcdefg"); sb.setCharAt(1, 'p');//修改指定位置字元 System.out.println("修改指定位置字元結果:" + sb); sb.replace(1, 3, "qq");//替換指定位置字串或字元 System.out.println("替換指定位置字元(串)" + sb); System.out.println("字串翻轉結果:" + sb.reverse()); } }
注意事項!!! 1:String類覆蓋了Object類的equals()方法,而StringBuffer類沒有 2:String類物件可以用操作符"+"進行連線,而StringBuffer類物件之間不能 例1:
String s1 = new String("abc"); String s2 = new String("abc"); System.out.println(s1.equals(s2));//列印結果是true StringBuffer sb1 = new StringBuffer("abc"); StringBuffer sb2 = new StringBuffer("abc"); System.out.println(sb1.equals(sb2));//列印結果是false public class Example01{ public static void main(String[] args){ String s1 = "a"; String s2 = "b"; String s3 = s1 + s2; System.out.println(s3); //列印結果是ab; //StringBuffer sb1 = new StringBuffer("a"); //StringBuffer sb1 = new StringBuffer("b"); //StringBuffer sb3 = sb1 + sb2; //編譯出錯 } }