有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在设法解决以下问题

如何从“流”中的“条件”中查找值? 目前,我只能使用“line.contains方法”进行过滤。但我希望用户可以给出一些条件,这些条件将保存在数组“conditions”中。我试图在流中建立一个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) {
        ...
    }
}   

共 (1) 个答案

  1. # 1 楼答案

    使用allMatch

    stream.filter(line -> Stream.of(conditions).allMatch(line::contains))