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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. 需求:"lajkflajrlwwjefakfjlsdghasdqw"获取该字符串出,每个字母出现的次数,
  3. 希望打印结果如a(1)b(3)...
  4. 思路:
  5. 1、字符和次数以键值对形式出现,且字母按照自然顺序排列,考虑用TreeMap集合存处
  6. 2、将字符串转化成字符数组,进行遍历,在遍历过程中,如果集合中已经存在某个字符,就将其值加1存入
  7. 如果不存在该字符,就将该字符和1存入
  8. 3、遍历集合,将集合内的键和值按照既定格式添加到StringBuilder中,然后转化成字符串返回
  9. */
  10. import java.util.*;
  11. class  TreeMapTest2
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 String str="lajkflajrlw*wjdfd-2+efakfjlsdghasdqw";
  16.                 str=printChar(str);
  17.                 System.out.println(str);
  18.         }
  19.        
  20.         public static String printChar(String str){
  21.                 TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
  22.                 char[] chs=str.toCharArray();
  23.                 int count=0;
  24.                 for(int x=0;x<chs.length;x++){
  25.                         if(!(chs[x]>='a'&&chs[x]<='z'||chs[x]>='A'&&chs[x]<='z'))
  26.                                 continue;
  27.                         if(!tm.containsKey(chs[x]))
  28.                                 count=1;
  29.                         else{
  30.                                 count=tm.get(chs[x]);
  31.                                 count++;
  32.                         }
  33.                         tm.put(chs[x],count);
  34.                         count=0;
  35.                 }
  36.                 StringBuilder sb=new StringBuilder();
  37.                 Set<Map.Entry<Character,Integer>> entry=tm.entrySet();
  38.                 Iterator<Map.Entry<Character,Integer>> it=entry.iterator();
  39.                 while(it.hasNext()){
  40.                         Map.Entry<Character,Integer> me=it.next();
  41.                         Character key=me.getKey();
  42.                         Integer value=me.getValue();
  43.                         sb.append(key+"("+value+")");
  44.                 }
  45.                 return sb.toString();
  46.         }

  47. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马