Java语言怎么判断一个文本文件里有没有任何2行文字出现了重复

Java语言怎么判断一个文本文件里有没有任何2行文字出现了重复,如果有,删除后面的,保留第一次出现的,怎么实现呢

把文件分别按行切分 再把行一个个塞入hashset (hashset不允许集合中有重复的值,在调用add方法时,如果插入了重复值,会返回false。)

【以下回答由 GPT 生成】

首先,我们可以使用HashSet来存储每一行的文字,并判断是否有重复行。HashSet是一个不允许存储重复元素的集合,所以我们可以利用它来判断是否存在重复行。

以下是一个可能的解决方案:

import java.io.*;
import java.util.HashSet;

public class RemoveDuplicateLines {
    public static void main(String[] args) {
        String filePath = "path/to/your/textfile.txt";

        try {
            // 读取文本文件
            BufferedReader reader = new BufferedReader(new FileReader(filePath));
            String line;

            // 使用HashSet存储每一行的文字
            HashSet<String> lines = new HashSet<>();

            // 逐行读取文本文件
            while ((line = reader.readLine()) != null) {
                // 判断是否有重复行
                if (lines.contains(line)) {
                    // 如果存在重复行,则删除该行
                    // 这里可以选择不做任何操作,或者记录重复行的数量等其它操作
                    continue;
                }

                // 添加到HashSet中
                lines.add(line);
            }

            // 关闭文件读取
            reader.close();

            // 重新写入文件
            BufferedWriter writer = new BufferedWriter(new FileWriter(filePath));

            // 遍历HashSet并写入文件
            for (String uniqueLine : lines) {
                writer.write(uniqueLine);
                writer.newLine();
            }

            // 关闭文件写入
            writer.close();

            System.out.println("重复行已删除并保存成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

请将"path/to/your/textfile.txt"替换为你实际的文本文件路径。

此代码将逐行读取文本文件并将每一行添加到HashSet中。如果存在重复行,它将跳过该行。然后,将HashSet中的唯一行重新写入原始文本文件,并删除了重复行。

请注意,此解决方案将修改原始文本文件。如果不想修改原始文件,可以将读取到的内容存储在一个新的List中,然后将List中的内容写入新的文件中。然后可以使用该新文件代替原始文件。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^