當需要對字串進行大量修改時,推薦使用StringBuffer
和StringBuilder
類。
與String
類不同,StringBuffer
和StringBuilder
類的物件可以反復修改,而不會留下大量新的未使用物件。
StringBuilder
類是從Java 5開始引入的,StringBuffer
和StringBuilder
之間的主要區別在於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
類中的方法列表 -
編號 | 方法 | 描述 |
---|---|---|
1 | public StringBuffer append(String s) | 該方法更新物件的值。該方法採用:boolean ,char ,int ,long ,String 等型別。 |
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 中資料的字串。 |