English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
методиз java.util.regex.Matcherкласс представляет собой движок, выполняющий различные операции совпадения. Этот класс не имеет конструктора и может быть использованmatches()
класс java.util.regex.Pattern создает/получает объект этого класса.
методhitEnd()проверяет, достигли ли мы конца ввода данных, и возвращает true, если да,否则 false. Если этот метод возвращает true, то это означает, что дополнительные данные ввода могут изменить результат совпадения.
Например, если вы пытаетесь использовать регулярное выражение "you $", чтобы соответствовать последнему слову вводимой строки, и если ваша первая строка ввода является "你好,你好吗", то может быть совпадение, но если вы принимаете больше предложений с новой строки, последний словосочетание может не быть необходимым словом (т.е. "you"), и результат совпадения будет ложно. В этом случае,该方法hitEnd()
метод возвращает true.
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$"; //Считывает ввод от пользователя Scanner sc = new Scanner(System.in); System.out.println("Введите текст ввода:"); String input = sc.nextLine(); //Инстанцирование класса Pattern Pattern pattern = Pattern.compile(regex); //Инстанцирование класса Matcher Matcher matcher = pattern.matcher(input); //Проверка, произошло ли совпадение if(matcher.find()) { System.out.println("Найден подход"); } boolean result = matcher.hitEnd(); if(result) { System.out.println("Более входных данных может сделать результат подхода ложным"); } System.out.println("Результат подхода будет true, несмотря на более данные"); } } }
Результат вывода
Введите текст ввода: Привет, как дела? Найден подход Более входных данных может сделать результат подхода ложным