黑马程序员技术交流社区

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

作者: xiaojunru    时间: 2016-3-14 15:19
标题: 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27...
import java.util.Arrays;
import java.util.HashMap;
import java.util.TreeMap;


public class Test1 {

        /**
         * @param args
         * *Test1--取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq",输出格式为:a(2)b(1)k(2)...
         */
        public static void main(String[] args) {
                String s = "abcdekka27qoq";                 //定义一个被统计的字符串
                String regex = "\\d";                                 //用正则去掉数字
                String s1 = s.replaceAll(regex,"");  //abcdekkaqoq  
               
                char[] arr = s1.toCharArray();                        //把字符串转换为字符数组
                 Arrays.sort(arr);                                    //把字符数组按照字典顺序排序
                 
                TreeMap<Character, Integer> hm = new TreeMap<>();     //定义双列集合,存储字符串中字符以及字符出现的次数
                //遍历字符数组获取每一个字符,并将字符存储在双列集合中
                for (char c : arr) {                                  //把字符数组存储在集合中,如果集合中包含这个键,就将值加1存储
                        if (!hm.containsKey(c)) {                         //如果集合中不存在这个键,就将该字符当键,值为1存储
                                hm.put(c, 1);
                        }else{
                                hm.put(c, hm.get(c) + 1);
                        }
                }
                //打印双列集合获取字符出现的次数
                for (Character key : hm.keySet()) {                 //遍历集合中的所有键,hm.keySet()
                        System.out.print(key + "("+ hm.get(key)+ ")");  //通过键获取值hm.get(key)
                }
        }
}







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