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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//有一个字符串"abcdeabcdabcaba",获取字符串中每一个字符出现的次数并输出,格式为"a(5)b(4)c(3)d(2)e(1)"
public class TreeMapDemo {
        public static void main(String[] args) {
                //键盘录入一个字符串
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入字符串");
                String StringIn = sc.nextLine();
                //定义一个TreeMap集合
                TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
                //把字符串转换为字符数组
                char[] chs = StringIn.toCharArray();
                //遍历字符数组
                for(char ch : chs) {
                        //判断集合中是否有该字符对应的键,如果有,集合的值加1,如果没有,直接添加该键
                        if(!tm.containsKey(ch)) {
                                tm.put(ch, 1);
                        } else {
                                Integer i = tm.get(ch);
                                tm.put(ch,++i);
                        }
                }
                //定义字符缓冲区变量
                StringBuilder sb = new StringBuilder();
                //获取Map集合中所有的键和值
                Set<Map.Entry<Character,Integer>> set = tm.entrySet();
                for(Map.Entry<Character,Integer> me : set) {
                        Character ch = me.getKey();
                        Integer it = me.getValue();
                        //将键和值添加到字符缓冲区中
                        sb.append(ch).append('(').append(it).append(')');
                }
                System.out.println(sb);
        }
}

6 个回复

倒序浏览
这个题有人面试遇到过,大家了解下
回复 使用道具 举报
这个毕老师视频里面不是有讲过吗?
回复 使用道具 举报
6666666666666666666
回复 使用道具 举报
可以不用集合,用String类也可以解决!!!
回复 使用道具 举报
老毕视频里面有详解啊这个.
回复 使用道具 举报
面试题啊,那必须背下来了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马