1. 程式人生 > >String 類和StringBuffer類的區別

String 類和StringBuffer類的區別

測試String類裡的方法
程式碼:

public static void main(String[] args) {
        String str1 = new String("abcdE");
        String str2 = new String("12345");
        System.out.println(str1.charAt(1));//返回指定索引處的 char 值。
        System.out.println(str1.compareTo(str2));// 按字典順序比較兩個字串。
        System.out.println(str1.concat
(str2));// 將指定字串連線到此字串的結尾。 System.out.println(str1.contains("a"));// 當且僅當此字串包含指定的 char 值序列時,返回 true。 System.out.println(str1.indexOf("a"));// 返回指定字元在此字串中第一次出現處的索引。 System.out.println(str1.contains("ab"));// 返回指定子字串在此字串中第一次出現處的索引。 System.out.println(str1.intern());// 返回字串物件的規範化表示形式。
System.out.println(str1.isEmpty() );// 當且僅當 length() 為 0 時返回 true。 System.out.println(str1.lastIndexOf("b"));// 返回指定字元在此字串中最後一次出現處的索引。 System.out.println(str1.length());// 返回此字串的長度。 System.out.println(str1.replace("a","d"));// 返回一個新的字串,它是通過用 newChar 替換此字串中出現的所有 oldChar 得到的。
System.out.println(str1.startsWith("a"));// 測試此字串是否以指定的字首開始。 System.out.println(str1.substring(1,3));// 返回一個新字串,它是此字串的一個子字串。 System.out.println(str1.toCharArray());// 將此字串轉換為一個新的字元陣列。 System.out.println(str1.toLowerCase());// 使用預設語言環境的規則將此 String 中的所有字元都轉換為小寫。 System.out.println(str1.toUpperCase());// 使用預設語言環境的規則將此 String 中的所有字元都轉換為大寫。 } }

結果:
這裡寫圖片描述

StringBuffer類裡的方法
程式碼:

public class Test {
    public static void main(String[] args) {
        StringBuffer strb1 = new StringBuffer("abcdE");
        StringBuffer strb2 = new StringBuffer("qwer");
        System.out.println( strb1.indexOf("cd"));// 返回子字串在字串中最先出現的位置,如果不存在,返回負數
        System.out.println( strb1.substring(1,3));// substring方法擷取字串,可以指定擷取的起始位置和終止位置
        System.out.println( strb1.substring(1,3));// substring方法擷取字串,可以指定擷取的起始位置和終止位置 d
        System.out.println( strb1.append(1));// 新增各種型別的資料到字串的尾部
        System.out.println( strb1.append("a"));// 新增各種型別的資料到字串的尾部
        System.out.println( strb1.append(1.23f));// 新增各種型別的資料到字串的尾部
        System.out.println( strb1.append(strb2));// 新增各種型別的資料到字串的尾部
        System.out.println( strb1.insert(2, 'W'));// 向字串中插入各種型別的資料
        System.out.println( strb1.replace(1,2,"123e"));// 替換字串中的某些字元
        System.out.println( strb1.reverse());// 將字串倒序
    }
}

結果:
這裡寫圖片描述

通過上面兩題的結果不難發現String 和StringBuffer兩個類最大的區別就是字串是常量;它的值在建立之後不能更改。,對其本身不產生任何的影響,而StringBuffer是在輸入的物件上直接操作,所以在要注意這一點,正確的選擇String 和StringBuffer。