编写java程序,实现统计一个文本中单词的出现次数,然后按照单词的字典顺序显示这些单词以及它们对应的次数
时间: 2024-03-21 16:41:57 浏览: 93
这份代码中包括探究矩阵和统计单词出现的次数
好的,以下是Java程序的实现:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.TreeMap;
public class WordCount {
public static void main(String[] args) {
String fileName = "input.txt"; // 输入文件名
Map<String, Integer> wordCount = new TreeMap<>(); // 用TreeMap存储单词以及对应的次数
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
String[] words = line.split("\\W+"); // 以非字母字符为分隔符,分割单词
for (String word : words) {
if (!word.isEmpty()) { // 如果单词不为空
word = word.toLowerCase(); // 转换为小写
if (wordCount.containsKey(word)) { // 如果已经存在该单词
wordCount.put(word, wordCount.get(word) + 1); // 更新次数
} else {
wordCount.put(word, 1); // 否则添加到map中,初始次数为1
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
for (Map.Entry<String, Integer> entry : wordCount.entrySet()) { // 遍历map,按照字典顺序输出单词以及对应的次数
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
```
你可以将上述代码保存为WordCount.java,然后通过命令行编译并执行:
```
javac WordCount.java
java WordCount
```
假设输入文件input.txt中包含以下内容:
```
This is a test. Test is a good thing.
```
则输出结果为:
```
a 1
good 1
is 2
test 2
thing 1
this 1
```
阅读全文