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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                 // 键盘输入一个字符串
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("请输入一个字符串:");
  6.                 String s = sc.nextLine();

  7.                 // 定义一个map集合
  8.                 TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
  9.                
  10.                 // 将字符串转换为字符数组
  11.                 char[] chr = s.toCharArray();
  12.                
  13.                 // 增强for循环字符数组
  14.                 for(char chrs:chr){
  15.                         //根据字符去TreeMap结合中找值
  16.                         Integer i = tm.get(chrs);
  17.                         // 根据返回的值判断,如果是null说明集合中没有
  18.                         if(i == null){
  19.                                 tm.put(chrs, 1);
  20.                         }else{
  21.                                 i++;
  22.                                 tm.put(chrs, i);
  23.                         }
  24.                 }
  25.                
  26.                 //定义字符串缓冲变量
  27.                 StringBuffer sb = new StringBuffer();
  28.                
  29.                 //遍历集合,获取键和值
  30.                 Set<Character> set = tm.keySet();
  31.                 for(Character key : set){
  32.                         Integer value = tm.get(key);
  33.                         sb.append(key).append("(").append(value).append(")");
  34.                 }
  35.                 // 输出结果
  36.                 System.out.println(sb.toString());
  37.         }
  38. }
复制代码



7 个回复

倒序浏览
自顶自顶
回复 使用道具 举报
幸福,其实离你并不远

点评

谢谢,我已感受到了  发表于 2015-4-23 11:23
回复 使用道具 举报
支持,楼主辛苦了

点评

不辛苦,谢谢支持  发表于 2015-4-23 11:26
回复 使用道具 举报
顶一个,加油

点评

谢谢  发表于 2015-4-23 11:25
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马