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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© love$$-IT 中级黑马   /  2015-3-6 01:03  /  805 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package mymap;

  2. import java.util.TreeMap;

  3. public class MapTest1 {
  4.         public static void main(String[] args) {
  5.                 //定义字符串"adjjakfhbakbfjhdasvgfjaa",获取没个字母出现的次数
  6.                 String str = "adj123[]jakfhbakbfjhdasvgfjaa";
  7.                 String str1 = myMaptest1(str);
  8.                 System.out.println(str1);
  9.         }
  10.        

  11.         public static String myMaptest1(String str) {
  12.                 // 将字符串转换成字符数组
  13.                 char[] ch = str.toCharArray();
  14.                 //定义TreeMap集合,用来存储字母(键)和字母出现的次数(值)
  15.                 TreeMap<Character,Integer> map = new TreeMap<Character,Integer>();
  16.                 //遍历数组
  17.                 for (int i = 0; i < ch.length; i++) {
  18.                         //判断是否是字母
  19.                         if(!(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z')){
  20.                                 continue;
  21.                         }
  22.                        
  23.                         //获取字母键对应的值出现的次数
  24.                         Integer value = map.get(ch[i]);
  25.                        
  26.                         //方法一
  27. //                        //判断键的值出现的次数,null则为第一次出现
  28. //                        if(value==null){
  29. //                                map.put(ch[i], 1);
  30. //                        }else {
  31. //                                value++;
  32. //                                map.put(ch[i], value);
  33. //                        }
  34.                        
  35.                        
  36.                         //方法二
  37.                         //定义变量,用来记录次数
  38.                         int count=0;
  39.                         if(value!=null){
  40.                                 count=value;
  41.                         }
  42.                         count++;
  43.                         map.put(ch[i], count);
  44.                 }
  45.                 return mapToString(map);
  46.         }
  47.         //達到a(2)b(3)c(4)效果
  48.         private static String mapToString(TreeMap<Character, Integer> map) {
  49.                 // 要達到輸出效果,用StringBuffer--单线程最好用StringBuilder
  50.                 StringBuilder sb = new StringBuilder();
  51.                 //遍历map集合
  52.                 for(Character key : map.keySet()){
  53.                         Integer value = map.get(key);
  54.                         sb.append(key+"("+value+")");
  55.                 }
  56.                 return sb.toString();
  57.         }
  58. }
复制代码

1 个回复

倒序浏览
先收了,回去看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马