Lớp StringBuilder
trong lập trình Java cũng 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), tương tự như lớp StringBuffer
. Tuy nhiên, có một điểm khác biệt quan trọng giữa hai lớp này:
- Tính đa luồng (Thread-safety):
StringBuilder
không đảm bảo tính đa luồng, nghĩa là nó không được thiết kế để đảm bảo an toàn khi làm việc với các luồng (threads) đồng thời. Điều này làm choStringBuilder
hiệu quả hơn so vớiStringBuffer
trong môi trường đơn luồng, khi bạn không cần quan tâm đến vấn đề đồng bộ hóa.
StringBuilder
cung cấp 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ả, tương tự như lớp StringBuffer
. Bạn nên sử dụng StringBuilder
khi bạn không cần hỗ trợ đa luồng và muố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 StringBuilder
:
append(String str)
: Thêm chuỗistr
vào cuối củaStringBuilder
.insert(int offset, String str)
: Chèn chuỗistr
vào vị tríoffset
củaStringBuilder
.delete(int start, int end)
: Xóa các ký tự từ vị trístart
đếnend-1
khỏiStringBuilder
.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 trongStringBuilder
.capacity()
: Trả về dung lượng hiện tại củaStringBuilder
.length()
: Trả về độ dài (số ký tự) củaStringBuilder
.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 StringBuilder
:
java
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder("Hello");
// Thêm chuỗi vào cuối
stringBuilder.append(" World");
System.out.println(stringBuilder); // Kết quả: "Hello World"
// Chèn chuỗi vào vị trí chỉ mục 5
stringBuilder.insert(5, " Java");
System.out.println(stringBuilder); // Kết quả: "Hello Java World"
// Xóa các ký tự từ vị trí 5 đến 10
stringBuilder.delete(5, 11);
System.out.println(stringBuilder); // Kết quả: "Hello World"
// Thay thế các ký tự từ vị trí 6 đến 11 bằng chuỗi "Java"
stringBuilder.replace(6, 11, "Java");
System.out.println(stringBuilder); // Kết quả: "Hello Java"
}
}
Lớp StringBuilder
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.