我有一些代码可以在文本文件中找到一个字符串,打印该字符串所在的行,然后打印它下面的 5 行。但是,我需要修改它,以便在找到字符串后删除/删除该行,而不是打印。我该怎么做呢?
File file = new File("./output.txt");
Scanner in = null;
try {
in = new Scanner(file);
while (in.hasNext()) {
String line = in.nextLine();
if (line.contains("(1)")) {
for (int a = 0; in.hasNextLine() && a < 6; a++) {
System.out.println(line);
line = in.nextLine();
}
}
}
} catch (Exception e) {
}
最佳答案
找一个可以开始的小片段。
假设您的 question.txt
有以下输入。
line 1
line 2
line 3 (1)
line 4
line 5
line 6
line 7
line 8
line 9
line 10
此代码段将打印所有行并跳过行 第 3 (1) 行
以及之后的五行。
List<String> lines = Files.readAllLines(Paths.get("question.txt"), Charset.defaultCharset());
for (int i = 0; i < lines.size(); i++) {
if (lines.get(i).contains("(1)")) {
i = i + 6;
}
System.out.println(lines.get(i));
}
输出
line 1
line 2
line 9
line 10
将这些行存储到文件中是留给你的。
关于java - 在文本文件中查找字符串,删除行和下面的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326306/