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」)でないため、一致する結果が偽となるかもしれません。この場合、hitEnd()方法返し真。

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("さらに入力が増えると、マッチングの結果がfalseになる可能性があります");
      }
         System.out.println("マッチングの結果はtrueになる予定ですが、さらにデータがあればfalseになる可能性があります");
      }
   }
}

出力結果

入力テキストを入力してください:
ハローハウアーユーは?
マッチングが見つかりました
さらに入力が増えると、マッチングの結果がfalseになる可能性があります