java编写一个程序,对一个字符串中的所有单词进行计数,并按照出现次数从大到小排序输出。
时间: 2024-03-09 19:50:18 浏览: 73
好的,我可以为您提供这个程序的实现。
以下是程序代码:
```java
import java.util.*;
public class WordCount {
public static void main(String[] args) {
String str = "hello world hello java world world";
String[] words = str.split(" ");
Map<String, Integer> wordMap = new HashMap<String, Integer>();
for (String word : words) {
if (wordMap.containsKey(word)) {
wordMap.put(word, wordMap.get(word) + 1);
} else {
wordMap.put(word, 1);
}
}
List<Map.Entry<String, Integer>> wordList = new ArrayList<Map.Entry<String, Integer>>(wordMap.entrySet());
Collections.sort(wordList, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue() - o1.getValue();
}
});
for (Map.Entry<String, Integer> wordEntry : wordList) {
System.out.println(wordEntry.getKey() + ": " + wordEntry.getValue());
}
}
}
```
这个程序首先将字符串按照空格分割成单词,然后使用Map统计每个单词出现的次数。接着,将Map中的数据转换成List,并按照出现次数从大到小排序,最后输出结果。
你可以将程序中的字符串 "hello world hello java world world" 替换为你想要统计单词数量的字符串。
阅读全文