java lambda allmatch 如果不匹配则打印值
java lambda allmatch print value if not match
有一个字符串列表,如果一个字符串不是以前缀开头,我想打印它。
如果所有字符串都以前缀开头,结果将为布尔值。
有没有办法做到一行?
将它组合起来的正确语法是什么:
return words.stream()
.allMatch(work -> word.startWith("ab"));
words.stream()
.forEach(word -> {
if (!word.startWith("ab")) {
System.out.print(word);
}
});
谢谢,
使用Stream.peek
在流中间放置一个操作
static boolean testPrefix(List<String> words, String prefix) {
return words.stream()
.peek(word -> {
if (!word.startsWith("ab")) System.out.println(word);
})
.allMatch(word -> word.startsWith(prefix));
}
有一个字符串列表,如果一个字符串不是以前缀开头,我想打印它。 如果所有字符串都以前缀开头,结果将为布尔值。
有没有办法做到一行?
将它组合起来的正确语法是什么:
return words.stream()
.allMatch(work -> word.startWith("ab"));
words.stream()
.forEach(word -> {
if (!word.startWith("ab")) {
System.out.print(word);
}
});
谢谢,
使用Stream.peek
在流中间放置一个操作
static boolean testPrefix(List<String> words, String prefix) {
return words.stream()
.peek(word -> {
if (!word.startsWith("ab")) System.out.println(word);
})
.allMatch(word -> word.startsWith(prefix));
}