A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiexie758 中级黑马   /  2015-10-31 18:34  /  549 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


统计字符串的个数,感觉在往Map集合存入时,相同的:取出值增加一个,然后添加;不相同的:直接新增,这样更方便了

public class Test1 {

        public static void main(String[] args) {
                // TODO 自动生成的方法存根
                        String s="abcdekka27qoq";
                        Map<Character,Integer>map=toMap(s);
                        printMap(map);
                 
               

        }
        //遍历map集合
        public static void printMap(Map<Character, Integer> map){
                Set<Character> set = map.keySet();
                Iterator<Character> it = set.iterator();
                while(it.hasNext())
                {
                        Character en = (Character)it.next();
                        System.out.print(en + "(" + map.get(en) + ")");
                }
               
               
        }
        public static Map<Character,Integer> toMap(String str){
                //变成一个字节数组
                char[] buf=str.toCharArray();
                //创建一个Map集合,能存键和值
                Map<Character,Integer> map=new HashMap<Character,Integer>();
                        //遍历,存储值,相同的值取出再增加一个,没有相同的直接新增
                        int count=1;

                        for(char ch:buf){//增强性的for循环
                                if(!map.containsKey(ch)){
                                        map.put(ch,count);
                               
                                }
                                else{
                                        int num=map.get(ch);
                                        num++;
                                        map.put(ch, num);
                                       
                                }
                        }
                        return map;
               
                }
}       

               


1 个回复

倒序浏览
jlq 中级黑马 2015-10-31 18:40:42
沙发
...looklokkklook
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马