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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xinleili3 中级黑马   /  2015-4-8 02:20  /  1147 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 需求:获取该字符串中的字母出现的次数,如:"sjokafjoilnvoaxllvkasjdfns";希望打印的结果是:a(3)c(0).....
  3.         通过结果发现,每个字母都有对应的次数,说明字母和次数之间有映射关系。而且字母是有顺序的。
  4. 想到:TreeMap集合会给键自动排序,可以把字母存到键上;
  5.       而且,每一次添加如果相同的键会将值更新,所以定义一个计数器每次取出原有的值然后+1;


  6. 思路:1、将字符串转换为字符数组
  7.       2、定义一个TreeMap集合,用于存储字母和字母出现的次数
  8.       3、用数组去遍历集合,如果集合中有该字母则次数加1,如果集合中没有则存入
  9.       4、将TreeMap集合中的元素转换为字符串


  10. */

  11. import java.util.*;

  12. class TreeMapTest
  13. {
  14.         public static void main(String[] args)
  15.         {
  16.                 String s ="dfeogjsdgr45djgidji24thfdljb;f[rg'";
  17.                 System.out.println("s中各字母出现的次数:"+charCount(s));
  18.         }

  19.         public static String charCount(String s)
  20.         {
  21.                 char[] c = s.toCharArray();

  22.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();

  23.                 //int count = 0;

  24.                 for(int x = 0;x<c.length;x++)
  25.                 {
  26.                         int count =0;
  27.                         if(!((c[x]>='a'&&c[x]<='z')||(c[x]>='A'&&c[x]<='Z')))
  28.                                 continue;
  29.                         Integer value = tm.get(c[x]);
  30.                         if(value!=null)
  31.                                 count = value;
  32.                         count++;
  33.                         tm.put(c[x],count);
  34.                 }

  35.                 StringBuilder sb=new StringBuilder();

  36.                 Iterator<Map.Entry<Character,Integer>> it = tm.entrySet().iterator();

  37.                 while(it.hasNext())
  38.                 {
  39.                         Map.Entry<Character,Integer> me= it.next();
  40.                         Character ch = me.getKey();
  41.                         Integer i = me.getValue();
  42.                         sb.append(ch+"("+i+")");


  43.                 }
  44.                 return sb.toString();

  45.         }
  46. }
复制代码


评分

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

查看全部评分

5 个回复

正序浏览
赞一个,,
回复 使用道具 举报
觉得好牛B啊,  楼主是学了多久啊

点评

我也是才把视频看了一遍,断断续续学了一个月了吧  发表于 2015-4-8 22:36
回复 使用道具 举报
感觉好厉害,请问LZ学了多久?学到哪了?
回复 使用道具 举报
可以 告诉我  这是什么程序吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马