Lớp StringBuffer trong Java

Trong java, lớp StringBuffer được sử dụng để tạo chuỗi hoàn toàn có thể đổi khác ( mutable ). Lớp StringBuffer trong java tựa như như lớp String ngoại trừ nó hoàn toàn có thể đổi khác .

image

Khởi tạo một lớp StringBuffer

Lớp này cung ứng nhiều phương pháp khởi tạo, chương trình sau minh hoạ cách sử dụng những phương pháp khởi tạo khác nhau để tạo ra những đối tượng người dùng của lớp này

class

Bạn đang đọc: Lớp StringBuffer trong Java

StringBuffer { 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()); System.out.println(s3.length()); System.out.println(s1.capacity()); System.out.println(s2.capacity()); System.out.println(s3.capacity()); } }

0
12
16
20
28

length()capacity() của StringBuffer là hai phương thức hoàn toàn khác nhau. Phương thức length() đề cập đến số các ký tự mà đối tượng thực chứa, trong khi capacity() trả về tổng dung lượng của một đối tượng (mặc định là 16) và số ký tự trong đối tượng StringBuffer.

Dung lượng của StringBuffer có thể thay đổi với phương thức ensureCapacity(). Đối số int đã được truyền đến phương thức này, và dung lượng mới được tính toán như sau:

NewCapacity = OldCapacity * 2 + 2

Trước khi dung lượng của StringBuffer được đặt lại, điều kiện sau sẽ được kiểm tra:

  • Nếu dung lượng mới (NewCapacity) lớn hơn đối số được truyền cho phương thức ensureCapacity(), thì dung lượng mới bằng NewCapacity được đặt.
  • Nếu dung lượng mới nhỏ hơn đối số được truyền cho phương thức ensureCapacity(), thì dung lượng được đặt bằng giá trị tham số truyền vào.

Chương trình sau minh hoạ dung tích được thống kê giám sát và được đặt như thế nào

class StringBuffer {
  public static void main(String args[]) {
    StringBuffer s1 = new StringBuffer(5);
    System.out.println(" Dung lượng của bộ nhớ đệm = "+s1.capacity());  
    s1.ensureCapacity(8);
    System.out.println(" Dung lượng của bộ nhớ đệm = "+s1.capacity());  
    s1.ensureCapacity

(

30); System.out.println(" Dung lượng của bộ nhớ đệm = "+s1.capacity()); } }

Trong đoạn mã trên, dung tích bắt đầu của s1 là 5. Câu lệnh

s1.ensureCapacity(8);

Thiết lập dung tích của s1 đến 12 = ( 5 * 2 + 2 ) do tại dung tích truyền vào là 8 nhỏ hơn dung tích được đo lường và thống kê là 12 .

s1.ensureCapacity(30);

Thiết lập dung tích của ” s1 ” đến 30 do tại dung tích truyền vào là 30 thì lớn hơn dung tích được đo lường và thống kê ( 12 * 2 + 2 ) .

Các phương thức lớp StringBuffer

  • void append(): Phương thức này nối thêm một chuỗi hoặc một mảng ký tự vào cuối cùng của đối tượng StringBuffer. Ví dụ:
StringBuffer s1 = new StringBuffer(" Good ");
s1.append(" evening ");

Giá trị trong s1 bây giờ là Goodevening.

  • insert(): Phương thức này có hai tham số. Tham số đầu tiên là vị trí chèn. Tham số thứ hai có thể là một chuỗi, một ký tự (char), một giá trị nguyên (int), hay một giá trị số thực (float) được chèn vào. Vị trí chèn sẽ lớn hơn hay bằng 0, và nhỏ hơn hay bằng chiều dài của đối tượng StringBuffer. Bất kỳ đối số nào, trừ ký tự hoặc chuỗi, được chuyển sang chuỗi và sau đó mới được chèn vào.
StringBuffer str = new StringBuffer(" Java sion ");
str.insert(1,’b’);

Biến "str" chứa chuỗi "Jbava sion"

  • char charAt(): Phương thức này trả về một giá trị ký tự trong đối tượng StringBuffer tại vị trí được chỉ định.
StringBuffer str = new StringBuffer(" James Gosling ");
char letter = str.charAt(6);  
  • void setCharAt(int index, char value): Phương thức này được sử dụng để thay thế ký tự trong một StringBuffer bằng một ký tự khác tại một vị trí được chỉ định.
StringBuffer name = new StringBuffer(" Jawa ");
name.setCharAt(2,’v’);

Biến "name" chứa "Java".

  • void setLength(): Phương thức này thiết lập chiều dài của đối tượng StringBuffer. Nếu chiều dài được chỉ định nhỏ hơn chiều dài dữ liệu hiện tại của nó, thì các ký tự thừa sẽ bị cắt bớt. Nếu chiểu dài chỉ định nhiều hơn chiều dài dữ liệu thì các ký tự null được thêm vào phần cuối của StringBuffer
StringBuffer str = new StringBuffer(10);
str.setLength(str.length() + 10);

char [] getChars(): Phương thức này được sử dụng để trích ra các ký tự từ đối tượng StringBuffer, và sao chép chúng vào một mảng và có bốn tham số sau:

  • Chỉ số đầu: vị trí bắt đầu, từ nơi mà ký tự được lấy ra.
  • Chỉ số kết thúc: vị trí kết thúc
  • Mảng: Mảng đích, nơi mà các ký tự được sao chép.
  • Vị trí bắt đầu trong mảng đích: Các ký tự được sao chép vào mảng đích từ vị trí này.
StringBuffer str = new StringBuffer(" Leopard ");
char ch[] = new char[10];
str.getChars(3,6,ch,0);

Bây giờ biến "ch" chứa "par"

  • void reverse(): Phương thức này đảo ngược nội dung của một đối tượng StringBuffer, và trả về một đối tượng StringBuffer khác.
StringBuffer str = new StringBuffer(" devil ");
StringBuffer strrev = str.reverse(

)

;

Biến "strrev" chứa "lived".