Ở bài trước, chúng ta đã tìm hiểu về String immutable tất là không thể thay đổi được khi đã khởi tạo. StringBuffer đại diện cho chuỗi ký tự có thể thay đổi được, kích thước của nó có thể tăng giảm khi chúng ta ghi xuống hoặc xóa đi.
StringBuffer Constructors
Mặc định StringBuffer có các constructors sau:
StringBuffer()
StringBuffer s = new StringBuffer();
StringBuffer(int size)
Khởi tạo StringBuffer với kích thước size.
StringBuffer s = new StringBuffer(10);
StringBuffer(String str)
Khởi tạo StringBuffer với str là chuỗi ban đầu
StringBuffer s=new StringBuffer("shareprogramming.net");
StringBuffer method
1, int length(): Trả về số lượng phần tử của StringBuff
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.length()); // return 20
2, int capacity(): Trả về tổng số lượng phần tử mà StringBuffer có thể chứa được
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.capacity()); // return 36
3, StringBuffer append(Object o): Nối một object vào StringBuffer
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.append(" - welcome")); System.out.println(str.append(2)); System.out.println(str.append(true)); System.out.println(str.append(5.5)); // Output // shareprogramming.net - welcome // shareprogramming.net - welcome2 // shareprogramming.net - welcome2true // shareprogramming.net - welcome2true5.5
4, StringBuffer insert(): Thêm chuỗi str vào vị trí index.
Chúng ta có các method với các tham số khác nhau:
- StringBuffer insert(int index, String str)
- StringBuffer insert(int index, char ch)
- StringBuffer insert(int index, boolean ch)
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.insert(20, " - welcome")); System.out.println(str.insert(25, 2)); System.out.println(str.insert(10, true)); System.out.println(str.insert(5, 5.5)); // output // shareprogramming.net - welcome // shareprogramming.net - we2lcome // shareprogrtrueamming.net - we2lcome // share5.5progrtrueamming.net - we2lcome
6, StringBuffer reverse(): Đảo ngược chuỗi
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.reverse()); // ten.gnimmargorperahs
7, StringBuffer delete(int start, int end): Xoá các ký tự bắt đầu từ start đến end
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.delete(0, 5)); // return "programming.net"
8, StringBuffer deleteCharAt(int index): xoá ký tự tại vị trí index
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.deleteCharAt(0)); // return "shareprogramming.net"
9, StringBuffer replace(int start, int end, String str): Thay thế các ký tự trong khoảng start – end bằng chuỗi str.
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.replace(0, str.length(), "hello")); // return "hello"
10, char charAt(int index): Trả về ký tự tại vị trí index
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.charAt(10)); // return "a"
11, int indexOf(String str): Trả về vị trí của chuỗi str, trả về -1 nếu không tìm thấy
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.indexOf("net")); // return 17
12, int indexOf(String str, int from): Tìm chuỗi str bắt đầu từ vị trí from.
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.indexOf("g", 10)); // return 15 System.out.println(str.indexOf("g", 0)); // return 8
13, int lastIndexOf(String str): Trả về vị trí cuối cùng của str.
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.lastIndexOf("g")); // return 15
14, int lastIndexOf(String str, int from): Trả về vị trí cuối cùng của str, bắt đầu tìm ngược lại từ vị trí from đến đầu chuỗi.
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.lastIndexOf("g", 10)); // return 8
15, void setCharAt(int index, char ch): Gán ký tự ch tại vị trí index
StringBuffer str = new StringBuffer("shareprogramming.net"); str.setCharAt(10, '*'); // return "shareprogr*mming.net"
16, String subtring(int start, int end): Trả về chuỗi con từ start đến end
StringBuffer str = new StringBuffer("shareprogramming.net"); System.out.println(str.substring(0, 5)); // return "share"
Note:
- StringBuffer thừa kế từ Object class.
- StringBuffer an toàn khi sử dụng đa luồng, vì các phương thức được đồng bộ hoá.
- Khi thực hiện các hành động như append(), insert() xảy ra trên chuỗi nguồn thì quá trình đồng bộ chỉ xảy ra trên chuỗi được thực hiện(tất là chuỗi được insert hay append vào chuỗi nguồn)
Nguồn tham khảo