English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java.util.function패키지Predicate인터페이스는 람다 표현식의 대상으로 사용될 수 있습니다. 이 인터페이스의 테스트 메서드는 값을 받아 현재 판단자 객체의 값을 사용하여 검증합니다. 일치하는 항목이 있으면 이 메서드는 true를 반환하며, 없으면 false를 반환합니다.
java.util.regex.Pattern의asPredicate()메서드는 문자열과 정규 표현식을 매칭할 수 있는 판단자 객체를 반환합니다. 이 정규 표현식으로 현재의 Pattern 객체를 컴파일할 수 있습니다.
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
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