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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© che201311 中级黑马   /  2013-11-23 16:42  /  931 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请教一段算法
一字符串:String str="10,16,0,8,19,11,16,10,16,5,17,11,16,13,3";
数字使用逗号隔开,统计出每个数字出现的次数。使用map<数字,次数>;
谢谢。

3 个回复

倒序浏览
说个思路吧,先把该字符串按‘,’分隔,得到一个数组,再循环判断,再if内部先把每个值set进map,键为数字,值为出现的次数。每equals一次j++一次。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励分、下次不带有代码例子。没有分了哦~~.

查看全部评分

回复 使用道具 举报
  1. import java.util.*;

  2. class Test
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ;
  7.                 System.out.println(cc("asdfaasadff"));
  8.         }

  9.         public static String cc(String str)       
  10.         {
  11.                 char[] chs = str.toCharArray();        //为转成字符作准备
  12.                
  13.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();//将字母作为建,出现次数作为值
  14.                
  15.                 for(int x=0;x<chs.length;x++)
  16.                 {
  17.                         int count = 0;
  18.                         if(!(chs[x]>='a' && chs[x]<='z' ||chs[x]>='A' && chs[x]<='Z' ))
  19.                                 continue;

  20.                         Integer value = tm.get(chs[x]);

  21.                         if(value!=null)
  22.                                 count = value;
  23.                         count++;
  24.                         tm.put(chs[x],count);
  25.                 }

  26.                 StringBuilder sb = new StringBuilder();        //建立字符缓冲区,为输出形式改变做准备
  27.        
  28.                 Set<Map.Entry<Character,Integer>> es = tm.entrySet();        //映射关系
  29.                
  30.                 Iterator<Map.Entry<Character,Integer>> it = es.iterator();        //激活迭代       

  31.                 while(it.hasNext())
  32.                 {
  33.                         Map.Entry<Character,Integer> me = it.next();        //it指向es(存放映射关系)
  34.                         Character ch = me.getKey();
  35.                         Integer value = me.getValue();
  36.                         sb.append(ch+"("+value+")");
  37.                 }
  38.                 return sb.toString();
  39.                 //System.out.println(sb);
  40.         }
  41. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
哥们标题和内容对不上啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马