Hashmap 中的值乘以 15?

Values in Hashmap Multiplied by 15?

所以我正在为一个 CS 课程做作业,其中涉及哈希图的使用,我需要在其中跟踪某个单词在页面上出现的次数。

现在由于一些奇怪的原因,我 运行 遇到了一个最奇怪的错误,其中一切似乎都正常工作并且所有内容都存储在地图中,但是,当我打印出来进行测试时,地图乘以 15.

members只出现了8次,但是我的输出是120

redding只出现了32次,但我的输出是480

相关代码如下:

Map<String, Integer> found = new HashMap<>();

while (match.find()) {
    String word = match.group().toLowerCase();
    Integer check = found.get(word);

    if (check == null) {
        found.put(word, 1);
    } else {
        found.put(word, check+1);
    }
}
...
for (Map.Entry<String, Integer> entry : found.entrySet()) {
    String k = entry.getKey();
    Integer i = entry.getValue();

    System.out.println("Word: " + k + " \t\t\tFrequency: " + i);

}

有人知道这里会发生什么吗?

编辑:正则表达式等的代码:

String word_pattern = "[A-Za-z]{5,}";
String content = WebDoc.getBodyContent(url);

Matcher match = Pattern.compile(word_pattern).matcher(content);

如果问题出在这里,我不明白为什么,因为这与我导师的示例代码相匹配,而他的示例 运行 没有这个问题。

使用 match.group() 时,您不会只获取所需匹配项的单个实例。

考虑在第一个循环中输出检查值,看看那里发生了什么。