Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về StringBuffer trong ngôn ngữ lập trình Java. Ngoài ra, chúng ta sẽ tìm hiểu thêm về constructor của Java, và các phương thức.
- StringBuffer class trong Java có thể coi là ngang hàng với một kiểu của String, mang đến nhiều ứng dụng thực tiễn của String
- StringBuffer có thể tăng và thay đổi giá trị chuỗi các ký tự nối tiếp trong khi String bị cố định độ dài, các chuỗi ký tự nối tiếp là immutable
- StringBuffer có thể có các ký tự và các chuỗi con được chèn vào giữa hoặc được nối thêm vào đầu
- Nó có một cơ chế cơ học để tạo thêm khoảng trống cho những bổ sung và đôi lúc có các ký tự thêm vào được phân bổ lại theo yêu cầu, để cho phép khoảng trống tăng lên
Constructor và phương thức
Các constructor và phương thức của StringBuffer được trình bày như bên dưới đây
Constructor trong StringBuffer
- StringBuffer(): Nó dành khoảng trống cho 16 ký tự trong khi không cần phân bổ lại
StringBuffer s=new StringBuffer();
- StringBuffer( int size): Nhận vào tham số
size
để thiết lập kích thước của bộ đệm
StringBuffer s=new StringBuffer(20);
- StringBuffer(String str): Nó dành khoảng trống cho 16 ký tự không cần phân bổ lại và nhận tham số
String str
để thiết lập giá trị mặc định cho StringBuffer object
StringBuffer s=new StringBuffer("HELLO");
Phương thức trong StringBuffer
length( ) and capacity( )
Độ dài của StringBuffer trong Java được xác định bằng cách sử dụng phương thức length()
, trong khi đó toàn bộ phần được cấp cho được xác định bằng phương thức capacity()
Ví dụ
import java.io.*; class Example { public static void main (String[] args) { StringBuffer s=new StringBuffer("HELLO"); int p=s.length(); int q=s.capacity(); System.out.println("Length of string HELLO=" + p); System.out.println("Capacity of string HELLO=" + q); } }
Kết quả
Length of string DataFlair=13 Capacity of string DataFlair=29
append( )
Phương thức append
thường được dùng để nối thêm chuỗi vào sau của một chuỗi hiện tại
Dưới đây là một số hình thức của phương thức
StringBuffer append(String str) StringBuffer append(int num)
Ví dụ
import java.io.*; class Example { public static void main (String[] args) { StringBuffer s=new StringBuffer("example"); s.append("s"); System.out.println(s); s.append(1); System.out.println(s); } }
Kết quả
examples examples1
insert( )
Thường được dùng để thêm vào đoạn text vào một vị trí mong muốn trong chuỗi. Có một định dạng như sau
StringBuffer insert(int index, String str) StringBuffer insert(int index, char ch)
Ở đây thì index
được dùng để xác định vị trí mà chuỗi hoặc ký tự sẽ chèn vào
Ví dụ
import java.io.*; class Example { public static void main (String[] args) { StringBuffer s=new StringBuffer("DataData"); s.insert(5, "for"); System.out.println(s); s.insert(0, 5); System.out.println(s); s.insert(3, true); System.out.println(s); s.insert(5, 41.35d); System.out.println(s); s.insert(8, 41.35f); System.out.println(s); char data_arr[] = { 'p', 'a', 'w', 'a', 'n' }; s.insert(2, data_arr); System.out.println(s); } }
Kết quả
DataforData 5DataforData 5Getrueatafordata 5Getr41.35ueataforData 5Getr41.41.3535ueTaforData 5Gpawanetr41.41.3535ueatafordata
reverse( )
Nó được dùng để đảo ngược các ký tự. Hàm này trả về một object ngược so với object mà nó tham chiếu tới
import java.io.*; class Example { public static void main (String[] args) { StringBuffer s=new StringBuffer("Example"); s.reverse(); System.out.println(s); } }
Kết quả
elpmaxE
delete( ) và deleteCharAt( )
Phương thức delete()
được dùng để xóa một chuỗi các ký tự liên tiếp trong object đang gọi. Ở đây startIndex
dùng để chỉ định vị trí index bắt đầu xòa và endIndex
dùng để xác định vị trí index cuối cùng mà chúng ta sẽ xóa. Như vậy chuỗi con sẽ được xóa từ vị trí startIndex đến endIndex -1. Tiếp theo nó sẽ trả về một StringBuffer object. Hàm deleteCharAt( )
dùng để xóa ký tự tại vị trí cố định loc.
Định dạng của 2 phương thức như sau
StringBuffer delete(int startIndex, int endIndex) StringBuffer deleteCharAt(int loc)
Ví dụ
import java.io.*; class Example { public static void main (String[] args) { StringBuffer s=new StringBuffer("DeleteExample"); s.delete(0,6); System.out.println(s); s.deleteCharAt(5); System.out.println(s); } }
Kết quả
Example Exampe
replace( )
Dùng để thay thế một bộ ký tự bằng bộ ký tự khác trong StringBuffer. Chuỗi ký tự con cần thay thế được xác định dựa theo index bắt đầu và index kết thúc. Tức là từ startIndex
đến endIndex-1
Định dạng của hàm như sau
StringBuffer replace(int startIndex, int endIndex, String str)
Ví dụ
import java.io.*; class Example { public static void main (String[] args) { StringBuffer s=new StringBuffer("Flair"); s.replace(5,8,"are"); System.out.println(s); } }
Kết quả
Flairare
ensureCapacity( )
Nó thường được dùng để tăng khả năng của object StringBuffer. Khả năng mới này thường được thiết lập theo giá trị chỉ định hoặc nhân đôi khả năng hiện tại của StringBuffer, tùy theo giá trị nào lớn hơn. Ở đây, capability
được dùng để chỉ định kích thước của bộ đệm
void ensureCapacity(int capacity).