Java 中的 StringBuffer 類詳解
StringBuffer
類是 Java 中用於建立可變字串的類。與 String
類不同,StringBuffer
物件允許在原有字串上進行修改,而不需要建立新的字串物件。這種特性使得 StringBuffer
在需要頻繁修改字串的場景下更加高效。此外,StringBuffer
是執行緒安全的,這意味著它的方法是同步的,可以在多執行緒環境中安全使用。
StringBuffer 類的特點
- 可變性:
StringBuffer
物件的字串內容可以被修改。 - 執行緒安全:
StringBuffer
的方法是同步的,可以在多執行緒環境中使用。
StringBuffer 類的構造方法
StringBuffer
類提供了幾種構造方法,允許以不同的方式初始化字串緩衝區:
public class Demo1StringBuffer {
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer();
System.out.println("預設容量:"+sb1.capacity());//預設容量為16個字元
System.out.println("sb1:"+sb1);//結果不是地址值,已經重寫了toString方法
System.out.println("儲存的字元數量:"+sb1.length());//獲取StringBuffer中儲存的字串長度(字元個數)
System.out.println("-------------------------");
//建立指定大小的StringBuffer
StringBuffer sb2 = new StringBuffer(50);
System.out.println("sb2的容量:"+sb2.capacity());
System.out.println("-------------------------");
//建立一個儲存了一個字串的StringBuffer
StringBuffer sb3 = new StringBuffer("hello");
System.out.println("sb3預設的容量:"+sb3.capacity());//預設大小等於16+實際大小
System.out.println("sb3實際的容量:"+sb3.length());
System.out.println("sb3:" + sb3);
}
}
StringBuffer 類的方法
StringBuffer
類提供了多種方法來操作字串,包括新增、刪除、替換、反轉和擷取等。
新增功能
StringBuffer buffer = new StringBuffer("Hello");
// 在字串緩衝區的末尾追加一個字串
buffer.append(" World");
System.out.println(buffer); // 輸出:Hello World
// 在指定位置插入一個字串
buffer.insert(5, " Java");
System.out.println(buffer); // 輸出:Hello Java World
刪除功能
// 刪除指定位置的字元
buffer.deleteCharAt(5);
System.out.println(buffer); // 輸出:Hello Java World
// 刪除從開始位置到結束位置的字元序列
buffer.delete(5, 9);
System.out.println(buffer); // 輸出:Hello World
替換功能
// 替換從開始位置到結束位置的字元序列
buffer.replace(5, 10, "Java");
System.out.println(buffer); // 輸出:Hello Java
反轉功能
// 反轉字串緩衝區中的字元序列
buffer.reverse();
System.out.println(buffer); // 輸出:avaJ olleH
擷取功能
// 從指定位置開始擷取到字串緩衝區末尾的字元序列
String substringFromStart = buffer.substring(5);
System.out.println(substringFromStart); // 輸出:olleh
// 從開始位置到結束位置擷取字元序列
String substringToEnd = buffer.substring(5, 9);
System.out.println(substringToEnd); // 輸出:olle
總結
StringBuffer
類是 Java 中處理可變字串的基礎,其執行緒安全的特性和豐富的方法使得字串操作既安全又方便。在需要頻繁修改字串的場景下,使用 StringBuffer
可以提高程式的效率。透過理解 StringBuffer
類的特點和方法,可以更有效地進行字串處理和程式設計。
擴充套件StringBuilder和StringBuffer
在 Java 中,StringBuilder 和 StringBuffer 都是用於建立可變字串的類。它們提供了相似的方法來操作字串,如新增、刪除、替換和反轉等。儘管它們在功能上非常相似,但它們之間存在一些關鍵的區別,主要體現線上程安全性和效能上,StringBUffer執行緒安全但效率低,StringBuilder反之。