CodeGym /Khóa học Java /Đa luồng Java /StringBuilder và StringBuffer

StringBuilder và StringBuffer

Đa luồng Java
Mức độ , Bài học
Có sẵn

"Chúng tôi chỉ cần bao gồm StringBuilder, và sau đó tôi nghĩ rằng chúng tôi đã hoàn thành."

"Như bạn đã biết, StringBuilder giống như lớp String, ngoại trừ nó có thể thay đổi."

"Và tôi cũng nhớ rằng trình biên dịch tạo mã sử dụng StringBuilder khi chúng ta chỉ cần thêm các Chuỗi lại với nhau."

"Vâng, bạn nói đúng. Bạn có một trí nhớ đáng kinh ngạc. Mặt khác, mọi người máy đều có. Tôi luôn quên điều đó."

"Hãy xem bạn có thể làm gì khi sử dụng lớp StringBuilder :"

1) Tôi có một Chuỗi bình thường và tôi muốn làm cho nó có thể thay đổi được. Làm thế nào để làm điều đó?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);

2) Tôi muốn thêm ký tự vào chuỗi có thể thay đổi hiện có?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.append("!");

3) Và làm cách nào để chuyển đổi StringBuilder trở lại Chuỗi?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.append("!");
s = s2.toString();

4) Và nếu tôi cần xóa một ký tự?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.deleteCharAt(2); //Becomes "Beder"

5) Làm cách nào để thay thế một phần của Chuỗi bằng chuỗi khác?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.replace (3, 5, "_DE_"); //Becomes "Ben_DE_r"

6) Nếu tôi cần đảo ngược Chuỗi thì sao?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.reverse(); //Becomes "redneB";

"Tuyệt. Cảm ơn, Ellie, mọi thứ đều hợp lý."

"Tôi vui vì bạn thích nó."

"Tôi cũng muốn nhắc bạn về một điều mà lẽ ra Bilaabo nên nói với bạn."

"Có một lớp khác được gọi là StringBuffer . Nó giống như StringBuilder , nhưng các phương thức của nó được khai báo là đồng bộ hóa . Điều này có nghĩa là trước bất kỳ cuộc gọi nào tới một trong các phương thức của nó, máy Java sẽ kiểm tra xem đối tượng có bận không; nếu không, JVM sẽ đánh dấu nó bận. Sau khi thoát khỏi phương thức, đối tượng sẽ được giải phóng. Do đó, các cuộc gọi này chậm hơn. Bạn không nên sử dụng StringBuffer trừ khi bạn phải làm vậy."

"Nhưng nếu bạn cần một Chuỗi có thể thay đổi sẽ được sử dụng trên nhiều luồng, thì bạn sẽ không tìm thấy thứ gì tốt hơn StringBuffer ."

"Cảm ơn vì thông tin. Tôi nghĩ một ngày nào đó thông tin đó có thể hữu ích."

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION