/** * 從一串字符中統計每一個字母/單詞出現的次數 */ 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); } }