JAVA统计字母、数字个数

/**
 * 从一串字符中统计每一个字母/单词出现的次数
 */
public class CountWords {

    /**
     * 统计一串字符串中字母的出现次数 将字符串转为char数组
     * @param countStr
     */
    public static void countWord(String countStr){
        if(countStr == null && "".equals(countStr)){
            System.err.println("字符串时空");
            return;
        }
        countStr = countStr.replace(" ","");
        Map<String,Integer> countMap = new HashMap<String,Integer>();
        char[] strArr = countStr.toCharArray();
        for(int i=0;i<strArr.length;i++){
            String word = strArr[i] + "";
            Object count = countMap.get(word);
            if(count != null){
                int value = (Integer) count + 1;
                countMap.put(word,value);
            }else{
                countMap.put(word,1);
            }
        }

        Set<Map.Entry<String, Integer>> keySets = countMap.entrySet();
        Iterator iterator = keySets.iterator();
        while (iterator.hasNext()){
            Map.Entry entry = (Map.Entry) iterator.next();
            System.out.println(entry.getKey()+"出现了"+entry.getValue()+"");
        }
    }

    /**
     * 统计一串文字中每一个单词出现的次数
     * @param countStr
     */
    public static void countWordByPattern(String countStr){
        String reg = "[a-zA-Z]+";
        Pattern pattern = Pattern.compile(reg);
        Map<String,Integer> countMap = new HashMap<String,Integer>();
        int count = 0;
        Matcher m = pattern.matcher(countStr);
        while (m.find()){
            count++;
            String w = m.group();
            if(null == countMap.get(w)){
                countMap.put(w, 1);
            }else{
                int x = countMap.get(w);
                countMap.put(w, x + 1);
            }
        }
        System.out.println(count);
        System.out.println(countMap);
}
}
相关文章
相关标签/搜索