日期:2014-05-20  浏览次数:20714 次

统计任意一字符串中的每个字符出现次数,内容中包含有中文且只能使用一次循环.
统计任意一字符串中的每个字符出现次数,内容中包含有中文且只能使用一次循环.这题怎么做?

------解决方案--------------------
Java code

    public static void main(String[] args) {   
         String str = "中文fdas中ad文jak中jfsadfasdf";      
         char[] chars = str.toCharArray();
         HashMap<String, Integer> m = new HashMap<String, Integer>(); 
         for(int i = 0 ;i<chars.length;i++){
             int count = m.get(""+chars[i]) == null?0:m.get(""+chars[i]);
             m.put(""+chars[i], ++count);
         }
         for(String key : m.keySet()){
             System.out.println(key + ":" + m.get(key));
         }
     }

------解决方案--------------------
Java code

    public static void main(String[] args) {
        String a = "中文fdas中ad文jak中jfsadfasdf";
        String[] arr = a.split("(?<=\\G.{1})");
        String s2 = "";
        Arrays.sort(arr);
        for (String i : arr) {
            s2 += i + "-";
        }
        Matcher m = Pattern.compile("((\\w*-)|([\u4e00-\u9fa5]-))\\1*").matcher(s2);
        while (m.find()) {
            System.out.println(m.group().substring(0, 1) + "的个数:"
                    + m.group().split("-").length);
        }
    }