利用Map集合进行单词词频的统计,扩展程序功能,要求统计输出输入单词的个数、每个单词的词频。
时间: 2023-06-01 16:07:55 浏览: 135
好的,这是一道编程题,我可以为您解答。以下是具体步骤:
1. 首先,定义一个Map集合,键值对类型为<String, Integer>,表示单词和它的词频。
2. 然后,将要统计的文本文件读入程序中。
3. 对于读入的每一个单词,如果该单词在Map集合中已存在,将该单词对应的值加1,表示词频增加1;否则,将该单词添加到Map集合中,并将该单词对应的值设为1。
4. 统计结束后,可以输出所有不同单词的个数,以及每一个单词对应的词频。
下面是一个示例代码,供您参考:
```java
import java.io.*;
import java.util.*;
public class WordCount {
public static void main(String[] args) throws IOException {
// 定义Map集合,键为单词,值为词频
Map<String, Integer> wordCountMap = new HashMap<String, Integer>();
// 读入文本文件,以空格、换行符等分隔符分割单词
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
String line;
while ((line = reader.readLine()) != null) {
String[] words = line.split("\\s+");
for (String word : words) {
// 转换成小写字母,忽略大小写差异
String lowercaseWord = word.toLowerCase();
// 判断该单词在Map集合中是否已存在
if (wordCountMap.containsKey(lowercaseWord)) {
// 如果存在,更新该单词的词频
int count = wordCountMap.get(lowercaseWord);
wordCountMap.put(lowercaseWord, count + 1);
} else {
// 如果不存在,添加该单词到Map集合中
wordCountMap.put(lowercaseWord, 1);
}
}
}
reader.close();
// 输出不同单词的个数,以及每一个单词对应的词频
System.out.println("不同单词的个数:" + wordCountMap.size());
for (String word : wordCountMap.keySet()) {
int count = wordCountMap.get(word);
System.out.println(word + ":" + count);
}
}
}
```
以上就是利用Map集合进行单词词频统计的示例程序。如果您对具体的代码实现还有疑问或不理解的地方,欢迎与我继续交流。
阅读全文