java - Java 中等效的 findAll python 方法

标签 java python methods findall equivalent

我想知道 Java 中是否有等效的 python 方法 findAll。我经常逐行读取文件来检查该行是否与正则表达式匹配。所以如果在 python 中我可以这样做:

 # Feed the file text into findall(); it returns a list of all the found strings
   strings = re.findall(r'some pattern', f.read())

Java中有类似的方法吗?

最佳答案

您可以使用java8流API。

List<String> strings = null; 
try(Stream<String> lines = Files.lines(Paths.get("/path/to/file"))) {
    strings = lines
        .filter(line -> line.matches("some pattern"))
        .collect(Collectors.toList());
}

如果你不需要 try block ,你可以使用(这将读取内存中的所有文件行)

List<String> strings = Files
    .readAllLines(Paths.get("/path/to/file"))
    .stream()
    .filter(line -> line.matches("some pattern"))
    .collect(Collectors.toList());

关于java - Java 中等效的 findAll python 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51610511/

相关文章:

Python 多处理回溯(最近调用最后)

python - ValueError : freq T not understood. 如果您认为这有误,请报告。 (季节性分解)

Java 访问修饰符最佳实践

java - 忽略混淆代码中某个方法的调用

java - @EJB 组件处的 NullPointerException

java - Selenium cucumber 中运行文件时出现初始化错误

java - 相同的 SQL 查询在 access 中运行,但在使用 java 的 access 中的 sql 脚本中失败

python - bar() 缺少 1 个必需的位置参数 : 'left'

android - JNI 从 C++ 调用 Java 方法

java - 参数 Java servlet Libvirt 中的 UUID