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

Phương thức Matcher.hitEnd() trong Java với ví dụ


Lớp java.util.regex.Matcher đại diện cho một engine thực hiện các phép toán khớp khác nhau. Không có constructor cho lớp này, bạn có thể tạo/nhận đối tượng của lớp này bằng phương thức matcher() của lớp java.util.regex.Pattern.

Phương thức hitEnd() kiểm tra xem cuối dữ liệu đầu vào có được đạt đến trong lần khớp trước đó hay không. Nếu có, trả về true, ngược lại false. Nếu phương thức này trả về true, nó cho thấy thêm dữ liệu đầu vào có thể thay đổi kết quả khớp.

Ví dụ, nếu bạn cố gắng khớp từ cuối cùng của chuỗi đầu vào là "you" bằng regex "you$" và dòng đầu vào đầu tiên là "hello how are you", bạn có thể có khớp. Nhưng nếu bạn nhận thêm câu, từ cuối cùng của dòng mới có thể không phải từ yêu cầu ("you"), làm kết quả khớp thành false. Trong trường hợp này, hitEnd() trả về true.

Ví dụ

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

public class HitEndExample {
    public static void main(String args[]) {
        String regex = "you$";
        
        // Đọc đầu vào từ người dùng
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập văn bản đầu vào: ");
        String input = sc.nextLine();
        
        // Khởi tạo Pattern
        Pattern pattern = Pattern.compile(regex);
        
        // Khởi tạo Matcher
        Matcher matcher = pattern.matcher(input);
        
        // Kiểm tra có khớp không
        if (matcher.find()) {
            System.out.println("Tìm thấy khớp");
        }
        
        boolean result = matcher.hitEnd();
        if (result) {
            System.out.println("Thêm đầu vào có thể làm kết quả khớp thành false");
        } else {
            System.out.println("Kết quả khớp sẽ là true, bất kể thêm dữ liệu");
        }
    }
}

Kết quả

Nhập văn bản đầu vào: Hello how are you
Tìm thấy khớp
Thêm đầu vào có thể làm kết quả khớp thành false