java "aababcabcdabcde",获取字符串中每一个字母出现的次数

来源:互联网 发布:samorost mac 编辑:程序博客网 时间:2024/05/16 10:08

需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数


分析:
 * A:定义一个字符串(可以改进为键盘录入)
 * B:定义一个TreeMap集合
 * 键:Character
 * 值:Integer
 * C:把字符串转换为字符数组
 * D:遍历字符数组,得到每一个字符
 * E:拿刚才得到的字符作为键到集合中去找值,看返回值
 * 是null:说明该键不存在,就把该字符作为键,1作为值存储
 * 不是null:说明该键存在,就把值加1,然后重写存储该键和值
 * F:定义字符串缓冲区变量
 * G:遍历集合,得到键和值,进行按照要求拼接
 * H:把字符串缓冲区转换为字符串输出


public class MapTest1 {public static void main(String[] args) {// 定义一个字符串(可以改进为键盘录入)String content = "aababcabcdabcde";// 定义一个TreeMap集合TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();//把字符串转换为字符数组char[] chs = content.toCharArray();//遍历字符数组,得到每一个字符for(char ch : chs){//拿刚才得到的字符作为键到集合中去找值,看返回值Integer i =  tm.get(ch);//是null:说明该键不存在,就把该字符作为键,1作为值存储if(i == null){tm.put(ch, 1);}else {//不是null:说明该键存在,就把值加1,然后重写存储该键和值i++;tm.put(ch,i);}}//定义字符串缓冲区变量StringBuilder sb=  new StringBuilder();//遍历集合,得到键和值,进行按照要求拼接Set<Character> set = tm.keySet();for(Character key : set){Integer value = tm.get(key);sb.append(key).append("(").append(value).append(")");}//把字符串缓冲区转换为字符串输出String result = sb.toString();System.out.println("result:"+result);}}


1 0