比如你想要使用Java的Stream流过滤模糊字段名字为"小王"的数据
创建一个方法传入要过滤的集合,和nt糊字段的名字
public static List<Student> filterStreams(List<Student> aaa, String searchName) {
List<Stream> filteredStreams = new ArrayList<>();
/**
Pattern.compile 方法用于将一个正则表达式字符串编译成一个正则表达式模式对象
,正则表达式字符串是 ".*" + keyword + ".*"。".*" 表示匹配任意数量的任意字符,keyword 是一个变量,表示待匹配的关键字。通过将关键字插入到 ".*" 的前后,形成了一个模糊匹配的正则表达式。
第二个参数 Pattern.CASE_INSENSITIVE 是一个标志,进行大小写不敏感的匹配。
*/
Pattern pattern = Pattern.compile(".*" + keyword + ".*", Pattern.CASE_INSENSITIVE);
return aaa.stream().filter(
x -> pattern.matcher(x.getName()).matches()).collect(Collectors.toList());
}
matcher
方法是 pattern
对象的方法,而matches()
方法会在给定的字符串上进行匹配操作,并返回一个布尔值,如果整个字符串完全匹配模式,则返回 true
;否则,返回 false
。