www.updatesofts.com
3.15.4
Lớp StringBuffer
Lớp StringBuffer cung cấp các phương thức khác nhau để thao tác một đối tượng dạng
chuỗi. Các đối tượng của lớp này rất mềm dẻo, đó là các ký tự và các chuỗi có thể được
chèn vào giữa đối tượng StringBuffer, hoặc nối thêm dữ liệu vào tại vị trí cuối. Lớp này
cung cấp các phương thức khởi tạo nạp chồng . Chương trình sau biểu diễn làm thế nào để
sử dụng các phương thức khởi tạo khác nhau để tạo ra các đối tượng của lớp này.
Chương trình 4.6
class StringBufferCons
{
public static void main(String args[])
{
StringBuffer s1 = new StringBuffer();
StringBuffer s2 = new StringBuffer(20);
StringBuffer s3 = new StringBuffer(“StringBuffer”);
System.out.println(“s3 = “+ s3);
System.out.println(s2.length()); //chứa 0
System.out.println(s3.length()); //chứa 12
System.out.println(s1.capacity()); //chứa 16
System.out.println(s2.capacity()); //chứa 20
System.out.println(s3.capacity()); //chứa 28
}
}
“length()” và “capacity()” của đối tượng StringBuffer là hoàn toàn khác nhau. Phương
thức “length()”đề cập đến số các ký tự mà đối tượng đưa ra, trong khi “capacity()” trả về
tổng dung lượng mặc định của một đối tượng (16), và số các ký tự trong đối tượng
StringBuffer.
Dung lượng của bộ đệm chuỗi có thể thay đổi với phương thức “ensureCapacity()”được
cung cấp trong lớp. Đối số int đã được truyền đến phương thức này, và phù hợp với một
dung lượng mới được tính toán như sau:
New Capacity = Old Capacity * 2 + 2
Trước khi dung lượng của bộ nhớ trung gian được cấp phát dung lượng được tính toán
mới, điều kiện sau sẽ được kiểm tra:
Nếu dung lượng mới lớn hơn đối số được truyền đến phương thức
“ensureCapacity()”, thì dung lượng bộ nhớ đệm được cấp phát
Một dung lượng được tính toán mới.