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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱皓 中级黑马   /  2012-2-23 20:48  /  1210 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class statString {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 String str="abadcdffbaeba";
  8.                 System.out.println(CharCount(str));
  9.         }
  10.        
  11.         public static  String CharCount(String str)
  12.         {
  13.                 char[] ch=str.toCharArray();
  14.                
  15.                 TreeMap<Character, Integer> map=new TreeMap<Character, Integer>();
  16.                
  17.                 for (int i = 0; i < ch.length; i++)
  18.                 {
  19.                         Integer value=map.get(ch[i]);
  20.                         if(value==null)
  21.                         {
  22.                                 map.put(ch[i], 1);
  23.                         }
  24.                         else {
  25.                                 value=value+1;
  26.                                 map.put(ch[i], value);
  27.                         }
  28.                 }
  29.                
  30.                 ArrayList<Map.Entry<Character,Integer>> infoidsList=
  31.                         new ArrayList<Map.Entry<Character,Integer>>(map.entrySet());
  32.                
  33.                 Collections.sort(infoidsList,new myComparator());
  34.                 StringBuilder sBuilder=new StringBuilder();
  35.                
  36.                 for (int i = 0; i < infoidsList.size(); i++) {
  37.                         //System.out.println(infoidsList.get(i).toString());
  38.                         sBuilder.append(infoidsList.get(i).getKey()+":"+infoidsList.get(i).getValue().toString()+",");
  39.                 }
  40.                
  41.                 String result=sBuilder.deleteCharAt(sBuilder.length()-1).toString();
  42.                
  43.                 return result;

  44.         }
  45. }
复制代码
  1. import java.util.Comparator;
  2. import java.util.Map;
  3. import java.util.Map.Entry;

  4. public class myComparator implements Comparator<Map.Entry<Character,Integer>>
  5. {

  6.         @Override
  7.         public int compare(Entry<Character, Integer> o1,
  8.                         Entry<Character, Integer> o2) {
  9.                 // TODO Auto-generated method stub
  10.                 return o1.getValue()-o2.getValue();
  11.         }
  12.        
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

1 个回复

倒序浏览
程序有一个漏洞,就是  将String str="abadcdffbaeba";  替换为 String str = "";时会出现异常,  意思就是你的  第42行代码需要判断  !!须修改

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马