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() 傳回此序列中資料的字串表示形式。 |