我正在编写一个项目,该项目从 .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, ...}
基本上它会增加地图中的每个值,而不是它应该增加的值。我不确定我是在想这个还是什么。我尝试了一个内部循环,它给了我疯狂的结果。我真的希望我只是想多了。任何帮助是极大的赞赏!