如何计算字符串数组中的重复项?

sim*_*ico 2 java string apache-commons

如何对String进行分区以提取其中出现的所有单词/术语并计算每次出现的次数?例如let:String q = "foo bar foo" 我想要一个DS {<foo,2>, <bar,1>}.这是我代码附带的最简单的代码*.错误或更简洁的替代方案?

String[] split = q.toString().split("\\s");
        Map<String, Integer> terms = new HashMap<String, Integer>();

        for (String term : split) {
            if(terms.containsKey(term)){
                terms.put(term, terms.get(term)+1);
            }
        }
Run Code Online (Sandbox Code Playgroud)

(还没有编译)

Buh*_*ndi 5

修改后的代码

String[] split = q.toString().split("\\s");
Map<String, Integer> terms = new HashMap<String, Integer>();

for (String term : split) {
    int score = 0;
    if(terms.containsKey(term)){
        score = terms.get(term);
    }

    terms.put(term, score +1);
}
Run Code Online (Sandbox Code Playgroud)

PS:未经测试.