Kiểm tra chuỗi chỉ bao gồm chữ cái tiếng Anh – 2 cách phổ biến: duyệt ký tự hoặc dùng Regular Expression.
Cách 1: Duyệt ký tự (Character.isLetter)
public static boolean isAlphaOnly(String str) {
if (str == null || str.isEmpty()) return false;
for (char ch : str.toCharArray()) {
if (!Character.isLetter(ch)) {
return false;
}
}
return true;
}
Character.isLetter() hỗ trợ Unicode (chữ có dấu, tiếng Nhật, tiếng Ả Rập...). Nếu chỉ muốn A-Z/a-z, dùng ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z'.
Cách 2: Regular Expression (khuyên dùng)
public static boolean isAlphaOnlyRegex(String str) {
return str != null && str.matches("^[a-zA-Z]+$");
}
// Hoặc hỗ trợ Unicode letter:
return str != null && str.matches("^\\p{L}+$");
Ví dụ tương tác
import java.util.Scanner;
public class ValidateName {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Nhập tên: ");
String name = sc.nextLine().trim();
if (name.matches("^[a-zA-Z\\s]+$")) { // cho phép khoảng trắng
System.out.println("✅ Tên hợp lệ");
} else {
System.out.println("❌ Tên chỉ được chứa chữ cái và khoảng trắng");
}
}
}
Kết quả mẫu
Nhập tên: Nguyễn Văn An
✅ Tên hợp lệ
Nhập tên: An123
❌ Tên chỉ được chứa chữ cái và khoảng trắng
Regex pattern phổ biến
| Yêu cầu | Regex |
|---|---|
| Chỉ A-Z, a-z | ^[a-zA-Z]+$ |
| Chữ cái + khoảng trắng | ^[a-zA-Z\\s]+$ |
| Chữ cái Unicode (có dấu) | ^\\p{L}+$ |
| Cho phép gạch nối (O'Connor) | ^[a-zA-Z\\-']+$ |