English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java에서 Matcher hitEnd() 메서드의 예제

본문해당 클래스는 일정한 엔진을 대표하며, 여러 가지 매칭 작업을 수행합니다. 이 클래스에는 생성자가 없으며, java.util.regex.Matcher를 사용하여matches()java.util.regex.Pattern 메서드를 통해 생성/해당 클래스의 객체를 얻습니다.

hitEnd()이 메서드는 입력 데이터의 끝에 도달했는지 확인하고, 도달하면 true를 반환하며, 도달하지 않으면 false를 반환합니다. 이 메서드가 true를 반환하면 더 많은 입력 데이터가 일치 결과를 변경할 수 있습니다.

예를 들어, 입력 문자열의 마지막 단어를 매칭하려고 "you $" 정규 표현식을 사용하려고 시도할 때, 입력의 첫 번째 행이 "안녕하세요, 잘 지내세요"라면 일치할 수 있는 항목이 있을 수 있습니다. 그러나, 더 많은 문장이 새로운 행으로 추가되면 마지막 단어가 필요한 단어가 아닐 수 있어서(즉, "you") 일치 결과가 거짓이 될 수 있습니다. 이 경우, 이 메서드는 이렇게 되었는지 확인하고 그렇다면 true를 반환하며, 그렇지 않으면 false를 반환합니다.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("일치 결과는 더 많은 데이터에도 불구하고 참일 수 있습니다");
      }
   }
}

출력 결과

입력 텍스트를 입력하세요:
안녕하세요, 어떻게 계신가요
일치 발견
더 많은 입력이 일치 결과를 거짓으로 만들 수 있습니다