黑马程序员技术交流社区

标题: 求大神解题 [打印本页]

作者: 827093172    时间: 2016-4-9 12:22
标题: 求大神解题
1、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
  输出格式为:a(2)b(1)k(2)...


作者: D丶M    时间: 2016-4-9 12:22
public class Demo01 {
        public static void main(String[] args) {
                String s = "fdskai2353425hfdsakhfdska";
                Map<Character, Integer> map = StringList(s); //接受一个字符串,返回一个map集合.
                ListMap(map); //接受一个map集合,遍历并打印.
        }

        public static void ListMap(Map<Character, Integer> map) {//遍历map
                Set se = new HashSet();
                se = map.entrySet();
                Iterator it = se.iterator();
                while(it.hasNext())
                {
                        Entry en = (Entry)it.next();
                        System.out.print(en.getKey() + "(" + en.getValue() + ")");
                }
        }

        public static Map<Character, Integer> StringList(String s) {  //将字符串遍历
                char[] ch = s.toCharArray();
                Map<Character, Integer> map = new HashMap<Character, Integer>();
                for(int x = 0; x < ch.length ; x ++)
                {
                        int a = 0;  //定义一个变量,每次都是从x角标在y循环中获取次数.
                        for(int y = 0; y < ch.length; y ++)
                        {
                                if(ch[x]== ch[y])
                                {
                                        a ++;  //如果相同了,就让变量加一.
                                }
                        }
                        if(!map.containsKey(ch[x])) //如果不存在才装进来.保证这个value是最大的次数值.
                        {
                                map.put(ch[x], a);
                        }
                }
                return map;
        }
}
作者: D丶M    时间: 2016-4-9 12:27
public class Demo01 {
        public static void main(String[] args) {
                String s = "fdskai2353425hfdsakhfdska";
                Map<Character, Integer> map = StringList(s); //接受一个字符串,返回一个map集合.
                ListMap(map); //接受一个map集合,遍历并打印.
        }

        public static void ListMap(Map<Character, Integer> map) {//遍历map
                Set se = new HashSet();
                se = map.entrySet();
                Iterator it = se.iterator();
                while(it.hasNext())
                {
                        Entry en = (Entry)it.next();
                        System.out.print(en.getKey() + "(" + en.getValue() + ")");
                }
        }

        public static Map<Character, Integer> StringList(String s) {  //将字符串遍历
                char[] ch = s.toCharArray();
                Map<Character, Integer> map = new HashMap<Character, Integer>();
                for(int x = 0; x < ch.length ; x ++)
                {
                        int a = 0;  //定义一个变量,每次都是从x角标在y循环中获取次数.
                        for(int y = 0; y < ch.length; y ++)
                        {
                                if(ch[x]== ch[y])
                                {
                                        a ++;  //如果相同了,就让变量加一.
                                }
                        }
                        if(!map.containsKey(ch[x])) //如果不存在才装进来.保证这个value是最大的次数值.
                        {
                                map.put(ch[x], a);
                        }
                }
                return map;
        }
}
作者: D丶M    时间: 2016-4-9 12:29
public class Demo01 {
        public static void main(String[] args) {
                String s = "fdskai2353425hfdsakhfdska";
                Map<Character, Integer> map = StringList(s); //接受一个字符串,返回一个map集合.
                ListMap(map); //接受一个map集合,遍历并打印.
        }

        public static void ListMap(Map<Character, Integer> map) {//遍历map
                Set se = new HashSet();
                se = map.entrySet();
                Iterator it = se.iterator();
                while(it.hasNext())
                {
                        Entry en = (Entry)it.next();
                        System.out.print(en.getKey() + "(" + en.getValue() + ")");
                }
        }

        public static Map<Character, Integer> StringList(String s) {  //将字符串遍历
                char[] ch = s.toCharArray();
                Map<Character, Integer> map = new HashMap<Character, Integer>();
                for(int x = 0; x < ch.length ; x ++)
                {
                        int a = 0;  //定义一个变量,每次都是从x角标在y循环中获取次数.
                        for(int y = 0; y < ch.length; y ++)
                        {
                                if(ch[x]== ch[y])
                                {
                                        a ++;  //如果相同了,就让变量加一.
                                }
                        }
                        if(!map.containsKey(ch[x])) //如果不存在才装进来.保证这个value是最大的次数值.
                        {
                                map.put(ch[x], a);
                        }
                }
                return map;
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2