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);
}
}
相關文章
相關標籤/搜索