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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 编程小黑 中级黑马   /  2015-7-28 23:10  /  690 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Set;
import java.util.TreeMap;

//获取一个字符串"sdfaswefavzvezvrzzvrszzcewe"中字符的个数,并以a(1)b(2)...的形式输出。
public class TreeMapSortDemo {
        public static void main(String[] args) {
                TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
                String s ="sdfaswefavzvezvrzzvrszzcewe";
                char[] ch = s.toCharArray();
                for (char c : ch) {
                        Integer i = tm.get(c);
                        if(i!=null){
                                i++;
                                tm.put(c,i);
                        }else{
                                tm.put(c, 1);
                        }
                }
                StringBuilder sb = new StringBuilder();
                Set<Character> keySet = tm.keySet();
                for (Character key : keySet) {
                        Integer i =tm.get(key);
                        sb.append(key+"("+i+")");
                }
                System.out.println(sb);
        }

}

18 个回复

倒序浏览
希望明天一切顺利,加油!
回复 使用道具 举报
谢谢分享!!!
回复 使用道具 举报
前两天刚看过又忘了
回复 使用道具 举报
思路:1、通过一个字母对应一个数字这种二院关系联想到map,又发现是从a升序排,所以选用treemap存储数据
          2、最终的结果是一个不确定长度的字符串,故存储到一个StringBuilder中
回复 使用道具 举报
3、从给定字符串的第一个字母开始遍历,对应的value若是null则value=1,若不是null则将原有的value+1,然后将该组键值对存储。字符串遍历完成后,就生成了需要的treemap,然后打印
回复 使用道具 举报
李峥 中级黑马 2015-7-29 01:44:01
7#
这个确实得记住
回复 使用道具 举报
Lblnc 中级黑马 2015-7-29 14:02:32
8#
经常遇到啊
回复 使用道具 举报
谢谢分享!!学习过了!!
回复 使用道具 举报
大家一起加油
回复 使用道具 举报
学习了··
回复 使用道具 举报
收集起来,以后会很有用哈哈哈
回复 使用道具 举报
大家一起加油。。。
回复 使用道具 举报
风华正茂 来自手机 中级黑马 2015-8-1 20:59:01
14#
谢谢楼主分享
回复 使用道具 举报
学习学习了
回复 使用道具 举报
已经记住了,谢谢分享
回复 使用道具 举报
每天进步一点点啊!
回复 使用道具 举报
学习了,很不错的题
回复 使用道具 举报
分享了,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马