我有这个字符串值列表。我的条件是过滤掉长度不为6的非数字值。
我有以下 2 个过滤器;我如何添加我的或条件?
List<String> teList = new ArrayList<String>();
teList.add("123456");
teList.add("76543W");
teList.add("123R56");
teList.add("888888");
teList.add("7652");
teList.add("222222222222");
teList.add("1234526R");
teList.add("76543222R");
List<String> exlist = teList.stream()
.filter(s -> !s.matches("[0-9]+"))
.filter(s -> s.length() != 6)
.collect(Collectors.toList());
System.out.println(exlist.toString());
反转您的条件并用 or (
||
) 连接它们。 (您想要保留数字值或长度为 6 的值。请参阅德摩根定律。)
List<String> exlist = teList.stream()
.filter(s -> s.length() == 6 || s.matches("[0-9]+"))
.collect(Collectors.toList());