私は、ページに単語が表示される回数を記録する必要があるハッシュマップの使用を含むCSコースの課題に取り組んでいます。ハッシュマップの値に15を掛けていますか?
私はいくつかの奇妙な理由から、すべてが正常に動作し、すべてがマップに保存されているような奇妙なバグを実行しましたが、テストするためにプリントアウトするとマップのすべての値に15.
メンバーはわずか8回表示されますが、私の出力は120
レディングは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);
}
誰でもここで何が起こっているのか考えていますか?
EDIT:正規表現のためのコードと、このような:
String word_pattern = "[A-Za-z]{5,}";
String content = WebDoc.getBodyContent(url);
Matcher match = Pattern.compile(word_pattern).matcher(content);
これは私のインストラクターのサンプル・コードと一致し、彼のサンプルの実行にはないような問題は、私は理由を理解していないよりも、ここにある場合この問題があります。
あなたの正規表現はあまりにも多くのものと一致しますか? –
あなたが投稿したコードに関連コードはありません。上記のコメントを参照してください... –
うーん、これは[ひどく馴染んだ]に見える(http://stackoverflow.com/questions/36879295/sorting-maps-without-a-comparator-an-arraylist-or-a-treeset/36879435 #comment61324680_36879295)... – shmosel