java - 如何在流中查找字符串数组的值

标签 java arrays file java-stream

我正在尝试解决以下问题。

如何从“流”中的“条件”中查找值? 目前我只能使用“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/

相关文章:

c# - 如何获取文件类型名称?

java - Sco Unix Grep 特定号码(ID)

C 多数组排列算法

c++ - 使用文本文件中的数据初始化对象数组

python - 如何合并 csv 文件的连续行

java - 为什么 Java mkdirs 不能正常工作?

java - 在 Eclipse 中为 Maven 项目使用 Tomcat

java - 第三种jdbc驱动程序(通过中间服务器)。它是如何工作的?

java - 将 .mat 文件转换为 XML —— 需要添加 java 类?

c - 为什么当我超出另一个数组的边界时 printf() 的输出会发生变化?