Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在流中查找字符串数组的值_Java_Arrays_File_Java Stream - Fatal编程技术网

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

Java 如何在流中查找字符串数组的值,java,arrays,file,java-stream,Java,Arrays,File,Java Stream,我正在设法解决以下问题 如何从“流”中的“条件”中查找值? 目前,我只能使用“line.contains方法”进行过滤。但我希望用户可以给出一些条件,这些条件将保存在数组“conditions”中。我尝试在stream.filter中构建for循环,但失败。^^也许您知道一种有效的方法。:) 谢谢 private static void streamSelectedFile(String p, String[] conditions) { try ( Stream<

我正在设法解决以下问题

如何从“流”中的“条件”中查找值? 目前,我只能使用“line.contains方法”进行过滤。但我希望用户可以给出一些条件,这些条件将保存在数组“conditions”中。我尝试在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) {
        ...
    }
}   
private static void streamSelectedFile(字符串p,字符串[]条件){
试一试(
Stream-Stream=Files.lines(path.get(p),StandardCharsets.ISO_8859_1)){
流过滤器流=
stream.filter(line->line.contains(“条件值”));
过滤流forEach(元素->{
System.out.println(元素+“路径:”+p);
});
}捕获(IOE异常){
...
}
}   

使用
allMatch

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

stream.filter(line->stream.of(conditions).allMatch(line::contains))
?就这样!!非常感谢你。我为这个问题浪费了很多时间,解决方案看起来很简单…。-:)