为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星点点滴滴 2019-08-28 09:52:23
如何计算字符串中字符的频率?我需要编写某种循环来计算字符串中每个字母的频率。例如:“aasjjikkk”将计为2'a',1'',2'j',1'i',3'k'。最终像这样的id最终会出现在一个地图中,其中字符为键,计数为值。有什么好主意怎么做?
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您可以使用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使用Multiset的解决方案并计算总发生次数。


查看完整回答
反对 回复 2019-08-28
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

一个简洁的方法是:

Map<Character,Integer> frequencies = new HashMap<>();for (char ch : input.toCharArray()) 
   frequencies.put(ch, frequencies.getOrDefault(ch, 0) + 1);

我们使用for-each循环遍历每个角色。所述frequencies.getOrDefault()如果键存在或返回(默认)第二个参数得到的值。


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 532 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信