一尘不染

如何计算字符串中字符的频率?

java

我需要编写某种循环,可以计算字符串中每个字母的频率。
例如:“ aasjjikkk”将计为2’a’,1’s’,2’j’,1’i’,3’k’。最终,像这样的id最终以字符为键,而count为值的形式出现在地图中。有什么好主意怎么做?


阅读 384

收藏
2020-03-13

共1个答案

一尘不染

你可以使用Java Map并将a映射charint。然后,你可以遍历字符串中的字符,并检查是否已将它们添加到地图中(如果有),然后可以增加其值。

例如:

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的解决方案:使用多重集并计算总发生次数。

2020-03-13