java编写程序,实现从一文本文件中读取数据,统计该文件中共有多少不同的单词及每个单词出现的次数,设文件名为proverb.txt,内容为下面3行:
时间: 2024-12-29 15:29:18 浏览: 10
在Java中,你可以通过使用`BufferedReader`来逐行读取文本文件,并使用`HashMap`来存储每个单词及其出现次数。以下是一个简单的步骤说明:
1. 导入必要的包:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
```
2. 创建一个方法来读取并处理文件内容:
```java
public static void wordCount(String fileName) {
HashMap<String, Integer> wordCountMap = new HashMap<>();
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
// 分割每一行的单词
String[] words = line.toLowerCase().split("\\s+");
for (String word : words) {
// 如果单词已存在于map中,计数加1;否则添加新词并设置计数为1
wordCountMap.put(word, wordCountMap.getOrDefault(word, 0) + 1);
}
}
// 输出结果
System.out.println("Unique words count: " + wordCountMap.size());
wordCountMap.forEach((word, count) -> System.out.println("Word: " + word + ", Count: " + count));
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
```
3. 调用这个方法,传入文件名:
```java
public static void main(String[] args) {
String fileName = "proverb.txt";
wordCount(fileName);
}
```
在这个例子中,我们假设所有的单词都进行了小写转换,以忽略大小写的差异。然后我们遍历文件内容,对每行进行分割,统计每个单词出现的次数。
阅读全文