Kiến thức cơ bản về StringBuilder
Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 44 trên 59.
StringBuilder dùng để tạo chuỗi có thể thay đổi. Cách này hiệu quả hơn so với nối chuỗi String thông thường khi bạn cần chỉnh sửa chuỗi nhiều lần.
Tạo một StringBuilder với văn bản ban đầu:
StringBuilder sb = new StringBuilder("Hello");Thêm văn bản bằng append():
sb.append(" World");Sau khi chạy đoạn code trên, sb chứa:
Hello World
Hãy dùng insert() để thêm văn bản vào một vị trí cụ thể:
StringBuilder sb = new StringBuilder("Java");
sb.append(" is"); // thêm vào cuối
sb.insert(0, "Hey "); // thêm vào vị trí 0 (đầu chuỗi)Sau khi chạy đoạn code trên, sb chứa:
Hey Java is
Chuyển StringBuilder thành chuỗi:
Khi cần trả về hoặc lưu kết quả dưới dạng chuỗi, hãy dùng toString():
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
String result = sb.toString(); // Chuyển thành String
System.out.println(result); // In ra: Hello WorldTại sao cần dùng toString()? Các phương thức trả về kiểu String không thể trả về trực tiếp StringBuilder, bạn phải chuyển đổi trước bằng toString().
Thử thách
DễTạo một phương thức có tên buildPhrase nhận ba đối số:
- Một chuỗi (
start) dùng cho phần mở đầu của cụm từ - Một chuỗi (
middle) dùng cho phần giữa - Một chuỗi (
end) dùng cho phần kết thúc
Phương thức này cần:
- Tạo một StringBuilder với chuỗi mở đầu
- Thêm một dấu cách và chuỗi ở giữa
- Thêm một dấu cách và chuỗi kết thúc
- Thêm dấu chấm than ở cuối
- Trả về chuỗi cuối cùng
Thông báo trả về cần là:
- Nếu bất kỳ đầu vào nào là null: trả về "Invalid input"
- Nếu thao tác thành công: trả về cụm từ đã tạo
Tự làm thử
import java.util.Scanner;
public class Main {
public static String buildPhrase(String start, String middle, String end) {
// Viết code của bạn ở đây
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String start = scanner.nextLine();
String middle = scanner.nextLine();
String end = scanner.nextLine();
if (start.equals("null")) start = null;
if (middle.equals("null")) middle = null;
if (end.equals("null")) end = null;
System.out.println(buildPhrase(start, middle, end));
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Mảng đa chiều
Kiến thức cơ bản về mảng 2DTruy cập phần tử trong mảng 2DVòng lặp lồng nhau với mảng 2DÔn tập về mảng 2DPhép cộng và phép trừ ma trậnMảng không đềuMảng 3D trở lênCác mẫu thường gặp với mảng 2DÔn tập về mảng2HashMap phần 1
HashMap là gì?Khai báo HashMapTruy cập giá trịKiểm tra khóa có tồn tạiChỉnh sửa từ điểnÔn tập: HashMap5HashSet phần 2
Toán học: hợp của các HashSetToán học: giao của HashSetToán học: hiệu tập hợpToán học: hiệu đối xứngTập con và tập chaDuyệt qua các tập hợp8Thao tác chuỗi nâng cao
Kiến thức cơ bản về StringBuilderGiới thiệu về StringBufferKiến thức cơ bản về biểu thức chính quySo khớp mẫu bằng RegexStringTokenizerĐịnh dạng chuỗi nâng caoTự luyện tập: Trình biên dịch Java online