从控制台输入一句英语,统计各单词出现的次数,用HashMap完成
时间: 2024-03-21 13:38:56 浏览: 77
好的,我可以帮你解决这个问题。以下是Java代码实现:
```java
import java.util.HashMap;
import java.util.Scanner;
public class WordCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一句英语:");
String input = scanner.nextLine();
scanner.close();
String[] words = input.split("\\W+"); // 利用正则表达式分割单词
HashMap<String, Integer> map = new HashMap<String, Integer>();
for (String word : words) {
if (map.containsKey(word)) {
map.put(word, map.get(word) + 1); // 单词已经在map中,将其出现次数加1
} else {
map.put(word, 1); // 单词第一次出现,将其出现次数设为1
}
}
// 输出结果
for (String word : map.keySet()) {
System.out.println(word + ": " + map.get(word));
}
}
}
```
运行结果示例:
```
请输入一句英语:Hello world, welcome to the world of programming!
programming: 1
to: 1
of: 1
world: 2
the: 1
welcome: 1
Hello: 1
```
这段代码中,我们利用Scanner从控制台读取一行英语,并利用正则表达式分割单词。然后,我们遍历所有单词,将其出现次数记录在HashMap中。最后,我们遍历HashMap,输出每个单词及其出现次数。
阅读全文