(按字母序的升序显示单词)编写一个程序,从文本文件读取单词,并按字母的升序显示所有的 单词(可以重复)。单词必须以字母开头。文本文件作为命令行参数传递。
时间: 2024-10-09 18:01:25 浏览: 25
要编写一个Java程序来按字母顺序读取并显示文本文件中的单词,你可以使用`java.io.BufferedReader`和`Scanner`来逐行读取文件,并利用`ArrayList`存储每个单词,然后对列表进行排序。以下是一个简单的示例:
```java
import java.io.*;
import java.util.*;
public class WordSorter {
public static void main(String[] args) {
if (args.length < 1) {
System.out.println("Please provide a text file as a command line argument.");
return;
}
String filePath = args[0];
List<String> words = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
// 使用正则表达式分割字符串为单词数组
String[] wordArray = line.split("\\W+");
for (String word : wordArray) {
// 如果单词以字母开头并且非空
if (Character.isLetter(word.charAt(0)) && !word.isEmpty()) {
words.add(word.toLowerCase()); // 将所有单词转换为小写并添加到列表中
}
}
}
Collections.sort(words); // 对单词列表按字母顺序排序
for (String word : words) {
System.out.println(word);
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
}
```
在这个程序中,我们首先检查是否有足够的命令行参数(文件路径)。然后,打开文件并逐行读取,使用`\W+`正则表达式分割每行为单词数组。对于每个单词,如果它以字母开头且不为空,我们就将其添加到`words`列表中,并确保所有单词都是小写的。最后,我们使用`Collections.sort()`对列表进行排序,并打印出结果。
阅读全文