1. 程式人生 > >String類和StringBuffer

String類和StringBuffer

## 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;        //編譯出錯
        }
    }