1.编写Java程序统计一篇英文文档中各单词出现的次数,并按单词出现的频率由高到低进行输出。 例如:文档“Hello word Hello”的统计结果为: Hello:2次 word:1次
时间: 2024-03-17 14:42:33 浏览: 135
好的,我可以为您编写这个Java程序。以下是程序代码:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class WordCount {
public static void main(String[] args) {
File file = new File("文档路径"); // 请替换为您要统计的文档路径
Map<String, Integer> wordCountMap = new HashMap<>();
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
String word = scanner.next().replaceAll("[^a-zA-Z]", "").toLowerCase();
if (word.length() > 0) {
if (wordCountMap.containsKey(word)) {
wordCountMap.put(word, wordCountMap.get(word) + 1);
} else {
wordCountMap.put(word, 1);
}
}
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定的文件");
e.printStackTrace();
}
Map<String, Integer> sortedWordCountMap = new TreeMap<>((o1, o2) -> {
int countCompare = wordCountMap.get(o2) - wordCountMap.get(o1);
if (countCompare == 0) {
return o1.compareTo(o2);
} else {
return countCompare;
}
});
sortedWordCountMap.putAll(wordCountMap);
for (Map.Entry<String, Integer> entry : sortedWordCountMap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue() + "次");
}
}
}
```
请将上述代码中的“文档路径”替换为您要统计的文档的实际路径,并运行程序即可得到统计结果。
阅读全文