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

Метод asPredicate() в примере Java

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("Найдено совпадение " + n); });
   }
}

Результат вывода

Найдено совпадение Java
Найдено совпадение JavaFX
Найдено совпадение JavaScript
Основной учебник
Рекомендуем также