標籤:同步 pes eve 容量 ringbuf tar reference http art
當對字串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。
和 String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,並且不產生新的未使用對象。
StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在於 StringBuilder 的方法不是安全執行緒的(不能同步訪問)。
由於 StringBuilder 相較於 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。然而在應用程式要求安全執行緒的情況下,則必須使用 StringBuffer 類。
Test.java 檔案代碼:public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer("菜鳥教程官網:"); sBuffer.append("www"); sBuffer.append(".runoob"); sBuffer.append(".com"); System.out.println(sBuffer); } }
以上執行個體編譯運行結果如下:
菜鳥教程官網:www.runoob.com
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()
返回此序列中資料的字串表示形式。 |
← Java String 類Java 數組 → 筆記列表
-
AlexHappy
[email protected]
Java 中 StringBuffer 和 String 是有一定的區別的,首先,String 是被 final 修飾的,他的長度是不可變的,就算調用 String 的concat 方法,那也是把字串拼接起來並重新建立一個對象,把拼接後的 String 的值賦給新建立的對象,而 StringBuffer 的長度是可變的,調用StringBuffer 的 append 方法,來改變 StringBuffer 的長度,並且,相比較於 StringBuffer,String 一旦發生長度變化,是非常耗費記憶體的!
AlexHappy
AlexHappy
[email protected]
3周前 (05-05)
Java StringBuffer 和 StringBuilder 類