VieTopik
Tiếng HànTiếng Anh.NET (C#)Java
  • Góc học tập
Tải app
  • Thư viện
  • Luyện thi
  • Cẩm nang
  • Góc học tập
Java CoreDữ liệu
Bài 7/19
5 phút

String

Nội dung bài · 5 mục
  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Thử ngay
  4. 4.Lỗi hay gặp
  5. 5.Tóm tắt

Tên sản phẩm, email khách, nội dung hoá đơn đều là chữ. Chương trình nào cũng phải ghép, cắt, tìm và so sánh chữ. Bài này giới thiệu kiểu String và những thao tác dùng hằng ngày.

Khái niệm

🔤 String: chuỗi ký tự đặt trong dấu nháy kép, ví dụ "Bút bi".

💬 Định dạng chuỗi (string formatting): cách chèn giá trị vào chuỗi bằng placeholder như %s, %d, rồi truyền giá trị vào formatted(...).

Ví dụ

void main() {
    String name = "  Bút bi Thiên Long  ";
    long price = 5000;

    String clean = name.trim();
    System.out.println(clean);     // Bút bi Thiên Long
    System.out.println(clean.length());   // 17
    System.out.println(clean.toUpperCase());
    // BÚT BI THIÊN LONG

    System.out.println(
        "%s giá %dđ".formatted(clean, price));
}
  • Gọi thao tác trên chuỗi bằng dấu chấm: name.trim().
  • "%s giá %dđ".formatted(clean, price) thay lần lượt %s bằng clean và %d bằng price. %s dùng cho chuỗi, %d cho số nguyên. Viết vậy gọn hơn nối bằng +.

Những thao tác hay dùng:

Thao tác Kết quả
s.length() số ký tự
s.trim() bỏ khoảng trắng hai đầu
s.toUpperCase(), s.toLowerCase() viết hoa, viết thường
s.contains("bi") có chứa chuỗi con không (boolean)
s.replace("a", "b") thay chuỗi con
s.substring(0, 3) cắt từ vị trí 0 tới trước vị trí 3
s.equals("bi") nội dung có giống hệt không (boolean)

Thử ngay

Dán vào Main.java rồi chạy java Main.java:

void main() {
    String code = "pen-01";
    code.toUpperCase();
    System.out.println(code);

    String upper = code.toUpperCase();
    System.out.println(upper);
}

Đoán trước khi chạy: dòng in đầu tiên là pen-01 hay PEN-01?

Xem kết quả
pen-01
PEN-01

String không sửa được sau khi tạo. toUpperCase() không đổi code mà trả về một chuỗi mới. Muốn dùng kết quả thì phải gán nó vào một biến.

Lỗi hay gặp

Quên gọi formatted. Thiếu formatted(...) thì placeholder %s được in ra nguyên văn.

// SAI — in ra: Xin chào %s
void main() {
    String name = "An";
    System.out.println("Xin chào %s");
}
// ĐÚNG — in ra: Xin chào An
void main() {
    String name = "An";
    System.out.println("Xin chào %s".formatted(name));
}

So sánh chuỗi mà quên phân biệt hoa thường. equals coi "Admin" và "admin" là khác nhau. So sánh chuỗi luôn dùng equals, không dùng ==.

// SAI — false dù hai chuỗi chỉ khác hoa thường
void main() {
    String role = "Admin";
    System.out.println(role.equals("admin"));
}
// ĐÚNG — so sánh không phân biệt hoa thường
void main() {
    String role = "Admin";
    System.out.println(role.equalsIgnoreCase("admin"));
}

Tóm tắt

  • String đặt trong nháy kép, thao tác qua dấu chấm: s.trim(), s.length().
  • "...%s...".formatted(giá_trị) chèn giá trị vào chuỗi.
  • String không sửa được. toUpperCase(), trim(), replace() đều trả về chuỗi mới, phải gán lại mới dùng được.
  • So sánh nội dung bằng equals, có phân biệt hoa thường.

Tự kiểm tra

0/3 câu
Câu 1

String email = " an@shop.vn "; email.trim(); System.out.println(email.length()); In ra gì?

Câu 2

int qty = 3; Dòng nào in ra đúng "Còn 3 cái"?

Câu 3

Bạn cần kiểm tra tên sản phẩm có chứa chữ "sale" hay không. Dùng thao tác nào?

MethodArray và List

Nội dung bài

  1. 1.Khái niệm
  2. 2.Ví dụ
  3. 3.Thử ngay
  4. 4.Lỗi hay gặp
  5. 5.Tóm tắt