Lớp StringBuffer
trong lập trình Java là một lớp được sử dụng để thao tác với chuỗi ký tự có khả năng thay đổi (mutable). StringBuffer
tương tự như lớp StringBuilder
, nhưng StringBuffer
được thiết kế để hỗ trợ đa luồng (thread-safe) trong khi StringBuilder
không đảm bảo tính đa luồng. Do đó, nếu bạn đang làm việc với đa luồng và cần xử lý chuỗi một cách an toàn, bạn nên sử dụng StringBuffer
.
StringBuffer
hỗ trợ các phương thức để thêm, thay đổi và xóa các ký tự trong chuỗi một cách hiệu quả. Bạn có thể sử dụng StringBuffer
khi bạn cần thực hiện nhiều thao tác trên chuỗi mà không muốn tạo ra nhiều đối tượng String
tạm thời.
Dưới đây là một số phương thức quan trọng của lớp StringBuffer
:
append(String str)
: Thêm chuỗistr
vào cuối củaStringBuffer
.insert(int offset, String str)
: Chèn chuỗistr
vào vị tríoffset
củaStringBuffer
.delete(int start, int end)
: Xóa các ký tự từ vị trístart
đếnend-1
khỏiStringBuffer
.replace(int start, int end, String str)
: Thay thế các ký tự từ vị trístart
đếnend-1
bằng chuỗistr
.reverse()
: Đảo ngược chuỗi trongStringBuffer
.capacity()
: Trả về dung lượng hiện tại củaStringBuffer
.length()
: Trả về độ dài (số ký tự) củaStringBuffer
.charAt(int index)
: Trả về ký tự tại vị trí chỉ mụcindex
.setCharAt(int index, char ch)
: Đặt giá trị ký tựch
tại vị trí chỉ mụcindex
.
Ví dụ sử dụng StringBuffer
:
java
public class StringBufferExample {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("Hello");
// Thêm chuỗi vào cuối
stringBuffer.append(" World");
System.out.println(stringBuffer); // Kết quả: "Hello World"
// Chèn chuỗi vào vị trí chỉ mục 5
stringBuffer.insert(5, " Java");
System.out.println(stringBuffer); // Kết quả: "Hello Java World"
// Xóa các ký tự từ vị trí 5 đến 9
stringBuffer.delete(5, 10);
System.out.println(stringBuffer); // Kết quả: "Hello World"
// Thay thế các ký tự từ vị trí 6 đến 11 bằng chuỗi "Java"
stringBuffer.replace(6, 11, "Java");
System.out.println(stringBuffer); // Kết quả: "Hello Java"
}
}
Lớp StringBuffer
là một công cụ mạnh mẽ cho việc thao tác với chuỗi có khả năng thay đổi mà không tạo ra nhiều đối tượng String
tạm thời, giúp tối ưu hiệu suất và sử dụng bộ nhớ.