java - 如何将文本文件读入数组列表,排除包含某些单词的行?

标签 java arraylist

我正在尝试编写一个程序,将名为 text.txt 的文本文件读取到 ArrayList 中。然后它必须删除任何包含“I love cake”的文本行

所以说这是文件中的文本:

I love cake so much
yes i do
I love cake
I dont care

这是我的代码。我让它读取文件,但我不明白如何删除某些行(包含“我喜欢蛋糕”的行)。

import java.io.*;
import java.util.*;
public class Cake {
    public static void main(String[] args) throws Exception {
        File fileIn = new File("text.txt");
        ArrayList<String> text = new ArrayList<String>();
        Scanner s= new Scanner(fileIn);    
        String line;

        while (s.hasNextLine()) {
            line = s.nextLine();
            System.out.println(line);
        }
        s.close();
    }
}

最佳答案

Java8:

Path file = new File("text.txt").toPath();
List<String> linesWithoutCake = Files.lines(file)
        .filter(s -> !s.contains("I love cake"))
        .collect(Collectors.toList());

您可以continue using the stream不包含您的图案的线条。例如计算它们:

long count = Files.lines(file).filter(s -> !s.contains("I love cake")).count();

关于java - 如何将文本文件读入数组列表,排除包含某些单词的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741822/

相关文章:

java - 我需要从 txt 文件上的 1000 个数字的列表创建一个数组列表。 java

android - 如何将对象列表写入 firebase?

java - 将二维 ArrayList 复制为新的

javascript - 阵列处理逻辑校正

java - 抽象基类的通用数据类型返回

java - 第一天 JDatePicker 1.3.4

java - Java/Java Card中的"Switch Case"和"If...else.."区别

java - 垃圾收集器在java中不起作用?

java - 如何为我的 Web 应用程序设置到期日期?

java - 不同类别的比较