参考资料
一. 使用指定正则表达式将字符串分割为流
String[] nameArr = {"张三", "李四", "王五", "赵三"};
// 使用正则表达式模式串来将字符串处理为字符串流。
String nameStr = String.join(",", nameArr); // "张三,李四,王五,赵三"
// ⭕以指定的正则表达式为基准,将字符串分割为流
Stream<String> stringStream = Pattern.compile(",").splitAsStream(nameStr);
List<String> nameList = stringStream
.filter(item -> item.contains("三"))
.collect(Collectors.toList());
System.out.println(nameList); // [张三, 赵三]
二. 正则表达式转换为谓词,进行过滤
// ⭕匹配163邮箱的正则表达式
Pattern pattern = Pattern.compile(".*@163.com");
// ⭕将正则表达式转换为谓词,进行163邮箱的过滤
Predicate<String> mailPredicate = pattern.asPredicate();
List<String> mailList = Arrays.asList("zhangsan@163.com", "lisi@hotmail.com", "wangwu@163.com");
List<String> newMailList = mailList.stream()
// ⭕使用正则表达式谓词进行过滤
.filter(mailPredicate)
.collect(Collectors.toList());
System.out.println(newMailList); // [zhangsan@163.com, wangwu@163.com]