我正在尝试编写一个程序,将名为 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/