黑马程序员技术交流社区

标题: 将字符串存入集合,并记录每个字符出现的次数,再包装... [打印本页]

作者: zzy张    时间: 2015-9-19 00:36
标题: 将字符串存入集合,并记录每个字符出现的次数,再包装...


import java.util.TreeMap;

public class TreeMapDemo4 {
        public static void main(String[] args) {
                String zi = "cbxzbvavdvgdb";
                // 将zi字符串转为字符数组

                char[] ch = zi.toCharArray();
                // 定义TreeMap集合Character做键,Integer做值
                TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
                // 遍历数组,获取每一个字符

                for (Character kch : ch) {
                        // 获取每个字符键所对应的值
                        Integer cd = tm.get(kch);
                        // 如果为空,表示集合中没有存入此字符,那么给其值为1,代表第一次put
                        if (cd == null) {
                               
                                tm.put(kch, 1);
                               
                                // 如果值不为空,表示集合中有此字符,那么将其的值+1重新put
                        } else {
                               
                                tm.put(kch, ++cd);
                        }
                }
                // 浏览次数记录是否正确
                System.out.println(tm);
                // 如果确认打印结果无误,那么创建StringBuilder对象,并为其赋予相应的格式
                StringBuilder sb = new StringBuilder();
                // 增强for遍历集合
                for (Character kch : ch) {
                        // 取出其各个字符对应的值
                        Integer s = tm.get(kch);
                        // 取出各个字符
                        Character b = kch;
                        // 格式加工
                        sb.append(b).append("(").append(s).append(")");

                }
                //打印最终StringBuilder
                System.out.println(sb);
        }
}





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