Java 编写一个程序--从文本文件当中读取单词,并将所有不重复的单词按照升序显示,文本文件被作为命令行参数传递
时间: 2024-11-27 07:20:02 浏览: 30
在Java中,你可以使用`java.util.Scanner`来读取文本文件中的内容,然后利用`HashSet`数据结构存储不重复的单词并保持其唯一性。最后,可以使用`TreeSet`来保证单词按字母顺序排序。下面是一个简单的示例程序:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class WordListSorter {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: java WordListSorter <filename>");
return;
}
String filename = args[0];
try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
Set<String> uniqueWords = new HashSet<>();
String line;
while ((line = br.readLine()) != null) {
String[] words = line.split("\\s+");
for (String word : words) {
uniqueWords.add(word.trim());
}
}
// 使用TreeSet保持自然排序
TreeSet<String> sortedUniqueWords = new TreeSet<>(uniqueWords);
sortedUniqueWords.forEach(System.out::println);
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
}
```
在这个程序中,我们首先检查命令行参数是否正确,然后打开指定的文件。接着逐行读取文件内容,分割成单词并添加到HashSet中,这样就自动去除了重复。最后,我们将HashSet转换为TreeSet,因为TreeSet内部实现了一个红黑树,可以提供高效的排序。
阅读全文