Java StringBuffer & StringBuilder類

2019-10-16 22:21:27

當需要對字串進行大量修改時,推薦使用StringBufferStringBuilder類。

String類不同,StringBufferStringBuilder類的物件可以反復修改,而不會留下大量新的未使用物件。

StringBuilder類是從Java 5開始引入的,StringBufferStringBuilder之間的主要區別在於StringBuilders方法不是執行緒安全的(不同步)。

建議盡可能使用StringBuilder類,因為它比StringBuffer更快。 但是,如果需要執行緒安全性,最好是使用StringBuffer類。

public class Test {

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

執行上面範例程式碼,得到以下結果:

Test String Buffer By tw511.com

StringBuffer方法

以下是StringBuffer類中的方法列表 -

編號 方法 描述
1 public StringBuffer append(String s) 該方法更新物件的值。該方法採用:booleancharintlongString等型別。
2 public StringBuffer reverse() 該方法反轉StringBuffer物件的值。
3 public delete(int start, int end) 刪除從起始索引開始直到結束索引的字串。
4 public insert(int offset, int i) 此方法將字串s插入偏移量指定的位置。
5 public StringBuffer replace(int start, int end, String str) 此方法將此StringBuffer的子字串中的字元替換為指定的字元。

以下是與String類相似的其他方法(set方法除外)列表 -

編號 方法 描述
1 int capacity() 返回StringBuffer的當前容量。
2 char charAt(int index) 返回由指定索引在當前StringBuffer表示序列的字元。
3 void ensureCapacity(int minimumCapacity) 確保緩衝區的容量至少等於指定的最小值。
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 從此StringBuffer複製到目標字元陣列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() 返回此StringBuffer的長度(字元數)。
10 void setCharAt(int index, char ch) StringBuffer的指定索引處的字元設定為ch
11 void setLength(int newLength) 設定此StringBuffer的長度。
12 CharSequence subSequence(int start, int end) 返回一個新的字元序列,它是該序列的子序列。
13 String substring(int start) 返回一個新字串,其中包含此StringBuffer當前包含的字元的子序列。 子字串從指定的索引開始並延伸到StringBuffer的末尾。
14 String substring(int start, int end) 返回一個新字串,其中包含此StringBuffer當前包含的字元的子序列。
15 String toString() 轉換為表示此StringBuffer中資料的字串。