我正在尝试解决以下问题。
如何从“流”中的“条件”中查找值? 目前我只能使用“line.contains 方法”进行过滤。但我希望用户可以给出一些条件,这些条件将保存在数组“条件”中。我尝试在stream.filter中构建一个for循环,但失败了。^^也许你知道一种有效的方法。 :)
谢谢。
private static void streamSelectedFile(String p, String[] conditions) {
try (
Stream<String> stream = Files.lines(Paths.get(p), StandardCharsets.ISO_8859_1)) {
Stream<String> filteredStream =
stream.filter(line -> line.contains("conditionValue"));
filteredStream.forEach(elem -> {
System.out.println(elem + " Path: " + p);
});
} catch (IOException e) {
...
}
}
最佳答案
使用allMatch
stream.filter(line -> Stream.of(conditions).allMatch(line::contains))
关于java - 如何在流中查找字符串数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54737333/