📅  最后修改于: 2023-12-03 14:42:16.459000             🧑  作者: Mango
在Java中,StringBuilder
是一个可变字符序列,用于构建字符串。它提供了一系列方法来修改、添加和删除字符信息。本文将介绍如何使用 StringBuilder
来过滤相同的行。
假设我们有一个文本文件,其中包含多行文本。我们想要从文件中读取内容,并过滤掉重复的行,然后将结果写入新的文件。
以下为解决这个问题的示例代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
public class FilterDuplicateLines {
public static void filterDuplicateLines(String inputFile, String outputFile) throws IOException {
Set<String> uniqueLines = new HashSet<>();
try (BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
String line;
while ((line = reader.readLine()) != null) {
if (!uniqueLines.contains(line)) {
uniqueLines.add(line);
writer.write(line);
writer.newLine();
}
}
}
}
public static void main(String[] args) {
String inputFile = "input.txt";
String outputFile = "output.txt";
try {
filterDuplicateLines(inputFile, outputFile);
System.out.println("Duplicate lines filtered successfully!");
} catch (IOException e) {
System.out.println("An error occurred while filtering duplicate lines: " + e.getMessage());
}
}
}
在上面的代码中,我们首先创建了一个 Set
来存储唯一的行。然后,我们使用 BufferedReader
逐行读取输入文件的内容,并检查当前行是否已存在于 uniqueLines
集合中。如果行不重复,我们将它添加到集合中,并使用 BufferedWriter
将其写入输出文件。
在 main
方法中,我们使用 filterDuplicateLines
方法来过滤输入文件的重复行,并将结果写入输出文件。如果过程顺利完成,则打印出成功的信息。如果发生任何错误,程序将打印出错误消息。
运行上面的代码将从名为 input.txt
的文件中读取文本内容,并将去除重复行后的结果写入 output.txt
文件中。
以上就是使用 Java
的 StringBuilder
过滤相同行的示例。希望本文对你有所帮助!