黑马程序员技术交流社区

标题: 取出一个字符串中字母出现的次数 [打印本页]

作者: 百思不得解    时间: 2015-4-22 22:36
标题: 取出一个字符串中字母出现的次数
如:字符串:"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. }
复制代码




作者: 百思不得解    时间: 2015-4-22 23:28
自顶自顶
作者: 梦逆光377    时间: 2015-4-23 00:20
幸福,其实离你并不远
作者: godrick007    时间: 2015-4-23 08:28
支持,楼主辛苦了
作者: 横看成岭侧成锋    时间: 2015-4-23 08:37
顶一个,加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2