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 map = new HashMap();
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 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();
}
}