【发布时间】:2021-02-15 22:31:48
【问题描述】:
我正在尝试计算字符串中的所有字符(“Hello”),但代码不起作用。我只是不知道如何让代码做我想做的事。
这就是我尝试的原因:
char[] array = hello.toCharArray();
HashMap<Character, Integer> hashMap = new HashMap<>();
// hashMap.put('a', 1);
int occurence = 1;
char currentChar = ' ';
for (int i = 0; i < array.length; i++) {
hashMap.put(hello.charAt(i), occurence);
currentChar = hello.charAt(i);
for (int j = 0; j < hashMap.size(); j++) {
if (hashMap.containsKey(currentChar)) {
hashMap.put(currentChar, occurence + 1);
}
}
}
System.out.println(hashMap);
}
}
但是,它只打印分配值为 2 的所有字母。
【问题讨论】:
-
欢迎来到 SO!迭代哈希图(或其大小)是没有意义的——这违背了目的。只需
get一次调用中的键和put新值,无需j循环。其次,循环顶部的hashMap.put(hello.charAt(i), occurence);会覆盖映射中之前的任何值。如果该项目在地图中根本不存在,您只想这样做。 -
我认为关于如何学习编程或如何调试简单代码的问题更适合Code Review Stack Exchange。
标签: java algorithm hashmap character