.javaファイルからJavaキーワードをキャプチャし、マップを使用して発生を追跡するプロジェクトを作成しています。私は過去に同様の方法をうまく使用しましたが、ここでの使用目的にこの方法を採用することはできないようです。
Map<String,Integer> map = new TreeMap<String,Integer>();
Set<String> keywordSet = new HashSet<String>(Arrays.asList(keywords));
Scanner input = new Scanner(file);
int counter = 0;
while (input.hasNext())
{
String key = input.next();
if (key.length() > 0)
{
if (keywordSet.contains(key))
{
map.put(key, 1);
counter++;
}
if(map.containsKey(key)) <--tried inner loop here, failed
{
int value = map.get(key);
value++;
map.put(key, value);
}
}
このコードブロックは、キーワードをキーに追加し、同じキーが発生するたびに値をインクリメントすることになっています。これまでのところ、キーワードは追加されていますが、値を適切にインクリメントできません。出力例は次のとおりです。
{assert=2, class=2, continue=2, default=2, else=2, ...}
基本的に、想定されている値ではなく、マップ内のすべての値をインクリメントします。私はこれを考えすぎているのか、それとも何を考えているのかわかりません。私は内側のループを試しましたが、それは私に非常識な結果をもたらしました。私は本当にこれを考えすぎていることを願っています。どんな助けでも大歓迎です!