Khóa học java

Lớp StringBuffer trong Java

0 phút đọc

Lớp StringBuffer trong Java là một công cụ mạnh mẽ để làm việc với chuỗi, cho phép thay đổi, nối chuỗi một cách hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu về cách khởi tạo một đối tượng StringBuffer, các phương thức quan trọng của lớp StringBuffer, và cách sử dụng chúng trong Java.

image

Khởi tạo một đối tượng StringBuffer

Lớp StringBuffer cung cấp nhiều cách khởi tạo đối tượng, dưới đây là các ví dụ:

  1. Sử dụng constructor mặc định:
StringBuffer s1 = new StringBuffer();
  1. Sử dụng constructor với dung lượng ban đầu:
StringBuffer s2 = new StringBuffer(20);
  1. Sử dụng constructor với một chuỗi ban đầu:
StringBuffer s3 = new StringBuffer("StringBuffer");

Trong ví dụ trên, s3 sẽ chứa chuỗi "StringBuffer".

System.out.println("s3 = " + s3); // s3 = StringBuffer
System.out.println(s2.length());  // 0
System.out.println(s3.length());  // 12
System.out.println(s1.capacity());  // 16
System.out.println(s2.capacity());  // 20
System.out.println(s3.capacity());  // 28

Hãy lưu ý rằng length()capacity() của StringBuffer là hai phương thức khác nhau. length() trả về số ký tự thực sự trong StringBuffer, trong khi capacity() trả về dung lượng tối đa mà StringBuffer có thể chứa mà không cần tăng cấp thêm.

Dung lượng của StringBuffer có thể thay đổi bằng cách sử dụng phương thức ensureCapacity(). Nếu dung lượng mới được yêu cầu lớn hơn dung lượng hiện tại, nó sẽ được tăng lên theo cơ chế:

NewCapacity = OldCapacity * 2 + 2

Chúng ta có thể thấy cách hoạt động của ensureCapacity() qua ví dụ sau:

StringBuffer s1 = new StringBuffer(5);
System.out.println("Initial capacity of s1 = " + s1.capacity()); // 5
s1.ensureCapacity(8);
System.out.println("Capacity of s1 after ensureCapacity(8) = " + s1.capacity()); // 12
s1.ensureCapacity(30);
System.out.println("Capacity of s1 after ensureCapacity(30) = " + s1.capacity()); // 30

Trong ví dụ trên, dung lượng ban đầu của s1 là 5. Sau khi sử dụng ensureCapacity(8), dung lượng của s1 tăng lên thành 12 vì 8 < 12 (5 * 2 + 2). Sau đó, khi sử dụng ensureCapacity(30), dung lượng của s1 tăng lên 30 vì 30 > 12.

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

append()

Phương thức append() dùng để nối thêm chuỗi, mảng ký tự hoặc bất kỳ kiểu dữ liệu nào vào cuối của StringBuffer. Ví dụ:

StringBuffer s1 = new StringBuffer("Good");
s1.append(" evening");

Kết quả sau khi sử dụng append là chuỗi "Good evening".

insert()

Phương thức insert() cho phép chèn một chuỗi, một ký tự, một giá trị nguyên hoặc số thực vào vị trí bất kỳ trong StringBuffer. Phương thức này có hai tham số: vị trí chèn và giá trị được chèn. Ví dụ:

StringBuffer str = new StringBuffer("Java sion");
str.insert(1, 'b');

Kết quả sau khi sử dụng insert là chuỗi "Jbava sion".

charAt()

Phương thức charAt() trả về ký tự tại một vị trí xác định trong StringBuffer. Ví dụ:

StringBuffer str = new StringBuffer("James Gosling");
char letter = str.charAt(6); // letter chứa 'G'

setCharAt()

Phương thức setCharAt() dùng để thay thế ký tự tại một vị trí cụ thể trong StringBuffer bằng một ký tự khác. Ví dụ:

StringBuffer name = new StringBuffer("Jawa");
name.setCharAt(2, 'v');

Kết quả sau khi sử dụng setCharAt là chuỗi "Java".

setLength()

Phương thức setLength() dùng để thiết lập chiều dài của StringBuffer. Nếu chiều dài mới nhỏ hơn chiều dài hiện tại của StringBuffer, các ký tự thừa sẽ bị cắt bỏ. Nếu chiều dài mới lớn hơn, các ký tự null sẽ được thêm vào cuối. Ví dụ:

StringBuffer str = new StringBuffer(10);
str.setLength(str.length() + 10);

getChars()

Phương thức getChars() dùng để trích xuất các ký tự từ StringBuffer và sao chép chúng vào một mảng. Phương thức này có bốn tham số: vị trí bắt đầu, vị trí kết thúc, mảng đích và vị trí bắt đầu trong mảng đích. Ví dụ:

StringBuffer str = new StringBuffer("Leopard");
char[] ch = new char[10];
str.getChars(3, 6, ch,

0);

Kết quả là biến ch chứa chuỗi "par".

reverse()

Phương thức reverse() dùng để đảo ngược nội dung của StringBuffer và trả về một đối tượng StringBuffer mới. Ví dụ:

StringBuffer str = new StringBuffer("devil");
StringBuffer strrev = str.reverse();

Kết quả là biến strrev chứa chuỗi "lived".

Lớp StringBuffer trong Java là một công cụ mạnh mẽ cho việc làm việc với chuỗi. Bài viết này đã giới thiệu cách khởi tạo đối tượng StringBuffer, các phương thức quan trọng và cách sử dụng chúng trong Java. Sử dụng lớp StringBuffer có thể giúp bạn thực hiện các thao tác liên quan đến chuỗi một cách thuận tiện và hiệu quả.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Làm thế nào để gọi hàm constructor của lớp cơ sở từ lớp con trong TypeScript?

entry

Hãy liệt kê một số JDE của Java?

entry

What are the two types of Exceptions in Java? Which are the differences between them?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào