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中的内容写入新的文件中。然后可以使用该新文件代替原始文件。
【相关推荐】