Java统计文档中英文单词个数
public class CountWords {public static void main(String[] args) {BufferedReader br = null;try {br = new BufferedReader(new FileReader("english.txt"));} catch (FileNotFoundException e) {e.printStackTrace();}StringBuffer sb = new StringBuffer();String line = null;try {while((line = br.readLine()) != null) {sb = sb.append(line);}} catch (IOException e) {e.printStackTrace();}try {br.close();} catch (IOException e1) {e1.printStackTrace();}Pattern pattern = Pattern.compile("[a-zA-Z']+");Matcher matcher = pattern.matcher(sb);Map<String, Integer> map = new HashMap<String, Integer>();String word = "";Integer num = null;int total = 0;while(matcher.find()) {word = matcher.group();total ++;if(map.containsKey(word)) {num = map.get(word);num += 1;} else {num = 1;}map.put(word, num);}PrintWriter pw = null;try {pw = new PrintWriter(new FileWriter("result.txt"), true);} catch (IOException e) {e.printStackTrace();}Iterator<String> iterator = map.keySet().iterator();while(iterator.hasNext()) {String tmp = iterator.next();pw.println(tmp + " : " + map.get(tmp));}pw.println("total words : " + total);pw.println("different words : " + map.size());pw.close();}}