Java 中的 Pattern asPredicate() 方法以及示例
java.util.function 包的 Predicate 接口可作为 lambda 表达式的目标。此接口的 test 方法接受一个值,并用当前的 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[] ) {
//Reading string value
Scanner sc = new Scanner(System.in);
System.out.println("Enter input string");
String input = sc.nextLine();
//Regular expression to find digits
String regex = "[t]";
//Compiling the regular expression
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
//Converting the regular expression to predicate
Predicate<String> predicate = pattern.asPredicate();
//Testing the predicate with the input string
boolean result = predicate.test(input);
if(result) {
System.out.println("Match found");
} else {
System.out.print("Match not found");
}
}
}输出
Enter input string Tutorialspoint Number of matches: 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"));
//Regular expression to find digits
String regex = "[J]";
//Compiling the regular expression
Pattern pattern = Pattern.compile(regex);
//Converting the regular expression to predicate
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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP