五,StringBuffer

bjynjj發表於2024-10-20

Java 中的 StringBuffer 類詳解

StringBuffer 類是 Java 中用於建立可變字串的類。與 String 類不同,StringBuffer 物件允許在原有字串上進行修改,而不需要建立新的字串物件。這種特性使得 StringBuffer 在需要頻繁修改字串的場景下更加高效。此外,StringBuffer 是執行緒安全的,這意味著它的方法是同步的,可以在多執行緒環境中安全使用。

StringBuffer 類的特點

  1. 可變性StringBuffer 物件的字串內容可以被修改。
  2. 執行緒安全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反之。

相關文章