我需要编写某种循环,可以计算字符串中每个字母的频率。 例如:“ aasjjikkk”将计为2’a’,1’s’,2’j’,1’i’,3’k’。最终,像这样的id最终以字符为键,而count为值的形式出现在地图中。有什么好主意怎么做?
你可以使用Java Map并将a映射char到int。然后,你可以遍历字符串中的字符,并检查是否已将它们添加到地图中(如果有),然后可以增加其值。
char
int
例如:
HashMap<Character, Integer> map = new HashMap<Character, Integer>(); String s = "aasjjikkk"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); Integer val = map.get(c); if (val != null) { map.put(c, new Integer(val + 1)); } else { map.put(c, 1); } }
最后,你将对遇到的所有字符进行计数,然后可以从中提取它们的频率。
另外,你可以使用Bozho的解决方案:使用多重集并计算总发生次数。