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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© codersun 中级黑马   /  2015-8-9 10:26  /  272 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Set;
import java.util.TreeMap;
/*
* "cbxzbvavdvgd"获取字符串中,每一个字母出现次数:"a(1)b(2)c(1)d(2)g(1)v(3)x(1)z(1)"
* 思路:
* A:把字符串变成字符数组。
* B:定义一个TreeMap集合。Character做键,Integer做值。
* C:遍历字符数组,获取到每一个字符。
* D:拿到该字符,到TreeMap集合中找对应的值
* E:根据返回值是否为null
*           是:存储,把次数记录为1
*           否:把数据++,然后重写存储
* F:把TreeMap的数据拼接成一个字符串。
*/
public class TreeMapDemo {
       public static void main(String[] args) {
              String s = "cbxzbvavdvgd";
              // 把字符串变成字符数组。
              char[] chs = s.toCharArray();
              // 定义一个TreeMap集合。Character做键,Integer做值。
              TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
              // 遍历字符数组,获取到每一个字符。
              for (Character ch : chs) {
                     // 拿到该字符,到TreeMap集合中找对应的值
                     Integer i = tm.get(ch);
                     // 根据返回值是否为null
                     // 是:存储,把次数记录为1
                     // 否:把数据++,然后重写存储
                     if (i == null) {
                            tm.put(ch, 1);
                     } else {
                            i++;
                            tm.put(ch, i);
                     }
              }
              // System.out.println(tm);
              // 把TreeMap的数据拼接成一个字符串。
              StringBuilder sb = new StringBuilder();
              Set<Character> set = tm.keySet();
              for (Character ch : set) {
                     Integer i = tm.get(ch);
                     sb.append(ch).append("(").append(i).append(")");
              }
              String result = sb.toString();
              System.out.println(result);
       }
}

0 个回复

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