Menu
CoddyTech

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 World

Tạ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().

challenge icon

Thử thách

Dễ

Tạo một phương thức có tên buildPhrase nhận ba đối số:

  1. Một chuỗi (start) dùng cho phần mở đầu của cụm từ
  2. Một chuỗi (middle) dùng cho phần giữa
  3. Một chuỗi (end) dùng cho phần kết thúc

Phương thức này cần:

  1. Tạo một StringBuilder với chuỗi mở đầu
  2. Thêm một dấu cách và chuỗi ở giữa
  3. Thêm một dấu cách và chuỗi kết thúc
  4. Thêm dấu chấm than ở cuối
  5. 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));
    }
}
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Java online