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

Java 예제의 패턴 asPredicate() 메서드

java.util.function패키지Predicate인터페이스는 람다 표현식의 대상으로 사용될 수 있습니다. 이 인터페이스의 테스트 메서드는 값을 받아 현재 판단자 객체의 값을 사용하여 검증합니다. 일치하는 항목이 있으면 이 메서드는 true를 반환하며, 없으면 false를 반환합니다.

java.util.regex.PatternasPredicate()메서드는 문자열과 정규 표현식을 매칭할 수 있는 판단자 객체를 반환합니다. 이 정규 표현식으로 현재의 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("일치하는 항목을 찾았습니다.");
      }
         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