用Java实现从键盘上面读入一行数据,利用集合类来统计不同的单词数。
时间: 2024-02-29 10:51:42 浏览: 22
好的,您可以参考下面的代码实现:
```java
import java.util.*;
public class WordCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
scanner.close();
String[] words = input.split("\\W+"); // 以非字母字符为分隔符分割单词
Map<String, Integer> wordCountMap = new HashMap<>();
for (String word : words) {
if (wordCountMap.containsKey(word)) {
wordCountMap.put(word, wordCountMap.get(word) + 1);
} else {
wordCountMap.put(word, 1);
}
}
System.out.println("不同的单词数为:" + wordCountMap.size());
}
}
```
代码解释:
1. 首先使用 `Scanner` 类从键盘上读取一行数据,保存到 `input` 变量中。
2. 使用 `String` 类的 `split()` 方法以非字母字符作为分隔符分割单词,并将结果保存到 `words` 数组中。
3. 遍历 `words` 数组,使用 `Map` 类保存每个单词出现的次数。如果单词已经在 `Map` 中存在,则将其出现次数加一;如果不存在,则将其出现次数初始化为一。
4. 最后输出 `Map` 的大小,即不同的单词数。
需要注意的是,上面的代码只是一个简单的示例,没有考虑一些特殊情况,比如单词中包含数字或者特殊字符等。如果需要更加完善的实现,还需要进行一些额外的处理。