java - 在文本文件中查找字符串,删除行和下面的行

标签 java string text-files

我有一些代码可以在文本文件中找到一个字符串,打印该字符串所在的行,然后打印它下面的 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/

相关文章:

java - Spring Security 中的 AuthenticationFilter 中需要 "normal"是 `ConfigurationAttribute` 吗?

java - Java 中字符串的线性搜索

delphi - 在 Delphi 7 中加载仅 CR 分隔的文件文本时如何解决问题?

java - 如何在运行时使用用户首选项为tinylog创建配置属性

Java:随机化方法递归调用的顺序

java - 在 Java 中将字节字符串转换为字母数字字符数组?

c++ - 在 C++ 的构造函数中初始化 c 数组时出错

c# - 如何输出字符串中的所有其他单词?

flutter - 未在 flutter 中创建文本文件

c# - 代码在运行多次后切断字符串