编写一个java程序,从文本文件读取单词,并按字母的升序显示所有的单词(可以重复),单词必须以字母开始,文本文件作为命令行参数传递
时间: 2024-09-25 20:03:35 浏览: 27
在Java中,你可以使用`Scanner`类从命令行参数获取文本文件,然后利用`BufferedReader`逐行读取内容,将每个单词分割并按照字母顺序排序。以下是一个简单的示例程序:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class WordSorter {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: java WordSorter <file_path>");
return;
}
String filePath = args[0];
List<String> words = readWordsFromFile(filePath);
sortAndDisplayWords(words);
}
private static List<String> readWordsFromFile(String filePath) {
List<String> wordList = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
// 提取并添加单词到列表中
for (String word : line.split("\\s+")) { // split by whitespace
if (word.matches("[a-zA-Z]+")) { // check if starts with alphabet
wordList.add(word.toLowerCase()); // convert to lowercase for case-insensitive sorting
}
}
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
return wordList;
}
private static void sortAndDisplayWords(List<String> words) {
Collections.sort(words); // sort the list in ascending order
for (String word : words) {
System.out.println(word);
}
}
}
```
要运行这个程序,你需要在命令行中输入类似这样的命令:
```bash
java WordSorter your_file.txt
```
替换`your_file.txt`为你想要处理的实际文本文件路径。
阅读全文