我正在编写一个项目,从.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);
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码应该将关键字添加到密钥中,并在每次出现相同密钥时递增值.到目前为止,它添加了关键字,但无法正确增加值.这是一个示例输出:
{assert=2, class=2, continue=2, default=2, else=2, ...}
Run Code Online (Sandbox Code Playgroud)
基本上它会增加地图中的每个值而不是它应该的值.我不确定我是否过度思考这个或者什么.我尝试了一个内循环,它给了我疯狂的结果.我真的希望我只是过度思考这个问题.任何帮助是极大的赞赏!