| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5720 人关注过本帖
标题:怎么在一串长字符串中找出出现最多次数的字符?
只看楼主 加入收藏
yft508
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:9
注 册:2012-1-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
怎么在一串长字符串中找出出现最多次数的字符?
package ind.idehub.day1;

import java.util.HashMap;
import java.util.Map;

public class CountMax {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s = "hidjahgugahjjaiosdhgbh";
        Map <Character, Integer> map = new <Character, Integer> HashMap();
        int len = s.length();
        
        
        for(int i=0; i<s.length();i++) {
            Character k = s.charAt(i);
            map.put(k, (map.get(k) == null ? 1: map.get(k) + 1));
        }
        
        System.out.println(map);
        
    }
}

输出结果 : {a=3, b=1, s=1, d=2, u=1, g=3, h=5, i=2, j=3, o=1}
怎么提取出出现最多次数的字符?
搜索更多相关主题的帖子: package public import method 字符串 
2016-08-09 15:50
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:0 
加一次比较不就可以了

我不是砖家,要努力成为砖家。
2016-08-09 16:25
yft508
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:9
注 册:2012-1-4
收藏
得分:0 
回复 2楼 砖家的谎言
怎么比较啊,map中只能用key提取value,比较出最大的value后,怎么输出key
2016-08-09 16:58
wuxiaobo_16
Rank: 2
等 级:论坛游民
威 望:3
帖 子:12
专家分:81
注 册:2016-8-7
收藏
得分:20 
程序代码:
import java.util.*;
public class CountMax {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s = "hidjahgugahjjaiosdhgbh";
        char[] chs = s.toCharArray();
        HashMap<Character,Integer> myMap = new HashMap<Character,Integer> ();
        for(char ch : chs)
            if ( myMap.containsKey(ch))
            {
                myMap.put(ch, (myMap.get(ch) +1));
            }
            else
                myMap.put(ch,1);
         System.out.println(myMap);
        //遍历一便,找出最大值
        Integer maxValue =new Integer(0);
        Character maxKey = new Character('a');

        Set<Character> keys = myMap.keySet();
        for(Iterator<Character> it =keys.iterator();it.hasNext();)
        {    
            Character key = it.next();
            Integer value = myMap.get(key);
            if(value > maxValue)
            {
                maxKey=key;
                maxValue=value;
            }
        }
        System.out.println("max entry: " + maxKey + "..."+maxValue);
    }
}
2016-08-10 11:29
yft508
Rank: 1
等 级:新手上路
威 望:1
帖 子:17
专家分:9
注 册:2012-1-4
收藏
得分:0 
回复 4楼 wuxiaobo_16
赞,谢谢,看来容器的api文档还要再好好看看
2016-08-11 17:48
快速回复:怎么在一串长字符串中找出出现最多次数的字符?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052401 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved