Bất kỳ từ nào chứa cả chữ cái và số được gọi là alphanumeric. Biểu thức chính quy sau khớp với tổ hợp chữ cái và số:
"^[a-zA-Z0-9]+$"
Phương thức matches() của lớp String chấp nhận một biểu thức chính quy (dạng String) và khớp với chuỗi hiện tại. Nếu khớp, phương thức trả về true, ngược lại false.
Do đó, để kiểm tra xem chuỗi có chứa giá trị alphanumeric:
- Lấy chuỗi đầu vào.
- Gọi phương thức matches() trên chuỗi đó với regex trên.
- Lấy kết quả.
Ví dụ 1: Sử dụng String.matches()
import java.util.Scanner;
public class AlphanumericString {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi đầu vào: ");
String input = sc.next();
String regex = "^[a-zA-Z0-9]+$";
boolean result = input.matches(regex);
if (result) {
System.out.println("Chuỗi đã cho là alphanumeric");
} else {
System.out.println("Chuỗi đã cho không phải alphanumeric");
}
}
}
Kết quả
Nhập chuỗi đầu vào: abc123* Chuỗi đã cho không phải alphanumeric
Ví dụ 2: Sử dụng java.util.regex API
Bạn cũng có thể biên dịch biểu thức chính quy và khớp với chuỗi cụ thể bằng các lớp và phương thức (API) của gói java.util.regex. Chương trình sau sử dụng các API này và xác minh xem chuỗi đã cho có phải alphanumeric hay không.
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi đầu vào: ");
String input = sc.nextLine();
String regex = "^[a-zA-Z0-9]+$";
String data[] = input.split(" ");
// Tạo đối tượng Pattern
Pattern pattern = Pattern.compile(regex);
for (String ele : data) {
// Tạo đối tượng Matcher
Matcher matcher = pattern.matcher(ele);
if (matcher.matches()) {
System.out.println("Từ " + ele + ": là alphanumeric");
} else {
System.out.println("Từ " + ele + ": không phải alphanumeric");
}
}
}
}
Kết quả
Nhập chuỗi đầu vào: hello* this$ is sample text Từ hello*: không phải alphanumeric Từ this$: không phải alphanumeric Từ is: là alphanumeric Từ sample: là alphanumeric Từ text: là alphanumeric