/** * 从一串字符中统计每一个字母/单词出现的次数 */ 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); } }