Java 字串緩衝區


當字串進行修改的時候,需要使用StringBuffer和StringBuilder類別。

和String類別不同的是,StringBuffer和StringBuilder類別的物件能夠被多次的修改,並且不產生新的未使用物件。

StringBuilder類別在Java 5中被提出,它和StringBuffer之間的最大不同在於StringBuilder的方法不是線程安全的(不能同步存取)。

由於StringBuilder相較於StringBuffer有速度優勢,所以多數情況下建議使用StringBuilder類別。然而在應用程式要求線程安全的情況下,則必須使用StringBuffer類別。

實例

public class Test{

    public static void main(String args[]){
       StringBuffer sBuffer = new StringBuffer(" test");
       sBuffer.append(" String Buffer");
       System.out.println(sBuffer);  
   }
}

以上實例編譯運行結果如下:

test String Buffer

StringBuffer 方法

以下是StringBuffer類別支援的主要方法:

                    序號                    方法說明
                    1                    public StringBuffer append(String s)
將指定的字串追加到此字元序列。
                    2                    public StringBuffer reverse()
 將此字元序列以其反轉形式取代。
                    3                    public delete(int start, int end)
移除此序列的子字串中的字元。
                    4                    public insert(int offset, int i)
int 參數的字串表示形式插入此序列中。
                    5                    replace(int start, int end, String str)
使用給定 String 中的字元替換此序列的子字串中的字元。

下面的列表裡的方法和String類別的方法類似:

                    序號                    方法說明
                    1                    int capacity()
返回當前容量。
                    2                    char charAt(int index)
傳回此序列中指定索引處的 char 值。
                    3                    void ensureCapacity(int minimumCapacity)
確保容量至少等於指定的最小值。
                    4                    void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
將字元從此序列複製到目標字元陣列 dst
                    5                    int indexOf(String str)
傳回第一次出現的指定子字串在該字串中的索引。
                    6                    int indexOf(String str, int fromIndex)
從指定的索引處開始,傳回第一次出現的指定子字串在該字串中的索引。
                    7                    int lastIndexOf(String str)
傳回最右邊出現的指定子字串在此字串中的索引。
                    8                    int lastIndexOf(String str, int fromIndex)
傳回最後一次出現的指定子字串在此字串中的索引。
                    9                    int length()
 返回長度(字元數)。
                    10                    void setCharAt(int index, char ch)
將給定索引處的字元設定為 ch
                    11                    void setLength(int newLength)
設定字元序列的長度。
                    12                    CharSequence subSequence(int start, int end)
傳回一個新的字元序列,該字元序列是此序列的子序列。
                    13                    String substring(int start)
傳回一個新的 String,它包含此字元序列目前所包含的字元子序列。
                    14                    String substring(int start, int end)
傳回一個新的 String,它包含此序列目前所包含的字元子序列。
                    15                    String toString()
傳回此序列中資料的字串表示形式。
#