String
Nội dung bài · 5 mục
- 1.Khái niệm
- 2.Ví dụ
- 3.Thử ngay
- 4.Lỗi hay gặp
- 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%sbằngcleanvà%dbằngprice.%sdùng cho chuỗi,%dcho 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-01String 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âuString email = " an@shop.vn "; email.trim(); System.out.println(email.length()); In ra gì?
int qty = 3; Dòng nào in ra đúng "Còn 3 cái"?
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?