Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình khớp nguyên âm trong chuỗi bằng biểu thức chính quy Java


Bạn có thể nhóm tất cả các ký tự cần khớp trong ngoặc vuông "[ ]", tức là metacharacter/sub-expression "[ ]" khớp với tất cả các ký tự được chỉ định. Do đó, để khớp tất cả các chữ cái nguyên âm, hãy chỉ định các chữ cái nguyên âm trong đó như sau:

[aeiouAEIOU]

Ví dụ 1: Sử dụng Pattern và Matcher

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatchVowels {
    public static void main(String args[]) {
        String regex = "[aeiouAEIOU]";
        System.out.println("Nhập chuỗi đầu vào: ");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        
        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);
        
        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            System.out.println("Chuỗi đầu vào chứa nguyên âm");
        } else {
            System.out.println("Chuỗi đầu vào không chứa nguyên âm");
        }
    }
}

Kết quả

Nhập chuỗi đầu vào: hello how are you welcome
Chuỗi đầu vào chứa nguyên âm

Ví dụ 2: Sử dụng String.matches()

import java.util.Scanner;

public class Test {
    public static void main(String args[]) {
        String regex = "[aeiouAEIOU]";
        System.out.println("Nhập chuỗi đầu vào: ");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        boolean result = input.matches(regex);
        if (result) {
            System.out.println("Chuỗi đầu vào chứa nguyên âm");
        } else {
            System.out.println("Chuỗi đầu vào không chứa nguyên âm");
        }
    }
}

Kết quả

Nhập chuỗi đầu vào: hello how are you welcome
Chuỗi đầu vào không chứa nguyên âm

Lưu ý: Ví dụ 2 sử dụng matches() yêu cầu toàn bộ chuỗi khớp với regex (chỉ chứa nguyên âm), nên kết quả false. Cần dùng find() hoặc regex ".*[aeiouAEIOU].*" để kiểm tra sự tồn tại.