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

JavaのasPredicate()メソッドの例

java.util.functionのパッケージPredicateこのインターフェースは、ラムダ式のターゲットとして使用できます。このインターフェースのテストメソッドは、値を受け取り、現在の述語オブジェクトの値でその値を検証します。一致項がある場合、このメソッドはtrueを返し、一致項がない場合、falseを返します。

java.util.regex.PatternのクラスasPredicate()このメソッドは、文字列を正規表現と一致させるためのPredicateオブジェクトを返します。この正規表現を使用して、現在のPatternオブジェクトをコンパイルできます。

例1

import java.util.Scanner;
import java.util.function.Predicate;
import java.util.regex.Pattern;
public class AsPredicateExample {
   public static void main( String args[] ) {
      //文字列値の読み取り
      Scanner sc = new Scanner(System.in);
      System.out.println("入力文字列を入力してください");
      String input = sc.nextLine();
      //数字を見つける正規表現
      String regex = "[t]";
      //正規表現をコンパイル
      Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
      //正規表現をパターンに変換
      Predicate<String> predicate = pattern.asPredicate();
      //入力文字列で述語をテストしています
      boolean result = predicate.test(input);
      if(result) {
         System.out.println("一致が見つかりました");
      } else {
         System.out.print("一致が見つかりません");
      }
   }
}

出力結果

入力文字列を入力してください
w3codebox
試合の数: 3

例2

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.function.Predicate;
import java.util.regex.Pattern;
public class AsPredicateExample {
   public static void main( String args[] ) {
      ArrayList<String> list = new ArrayList<String>();
      list.addAll(Arrays.asList("Java", "JavaFX", "Hbase", "JavaScript"));
      //数字を見つける正規表現
      String regex = "[J]";
      //正規表現をコンパイル
      Pattern pattern = Pattern.compile(regex);
      //正規表現をパターンに変換
      Predicate<String> predicate = pattern.asPredicate();
      list.forEach(n -> { if (predicate.test(n)) System.out.println("Match found "+n); });
   }
}

出力結果

Match found Java
Match found JavaFX
Match found JavaScript