【问题】
I am trying to code to read info from a text file, I need to find out how many times each word separated by white space occurs. I then need to output in alphabetical order with the count of each word. I am looking to use a TreeMap, keySet() and an Iterator. My code is very incomplete and I am quite stuck.
import java.util.HashMap;
import java.util.Map
public class WordCount<E extends Comparable<E>> {
private static Map<String, Integer> map = new HashMap<String, Integer>();
static {
fillMap(map, "Alice.txt");
}
private static void fillMap(Map<String, Integer> map, String fileName) {
}
}
【回答】
将文件拆成单词集合,之后按单词分组汇总即可,但JAVA编码复杂度较高,建议用SPL写好脚本再嵌入Java:
| A | |
| 1 | =file("d:\\data.txt").read() |
| 2 | =A1.words() |
| 3 | =A2.groups(~:word;count(~):count) |
A1:从文本读取字符串
A2:将字符串拆分成单个单词组成的序列
A3:采用累计的方式对单词分组,并统计每种单词的数量
SPL的groups就是用java的hashmap实现的,性能很好。写好的脚本如何在应用程序中调用,可以参考Java 如何调用 SPL 脚本
博客探讨了如何在Java中使用HashMap统计文本文件中单词的出现次数。作者遇到困难,试图使用TreeMap、keySet和Iterator来实现,但代码不完整。回答建议使用SPL脚本来简化操作,通过读取文本、拆分单词、分组累计来实现,并指出SPL的groups功能性能出色。
686

被折叠的 条评论
为什么被折叠?



