统计文章的单词个数
- - ITeye博客已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.
package com.lr.string;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
public class WordCount {
public static void main(String[] args) {
String str = null;
int WordCount = 0;
Map<String, Integer> map = new HashMap<String, Integer>();
List<Map.Entry<String, Integer>> listMap = null;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(new File(
"src/com/lr/string/WordCount.java"))));
while ((str = br.readLine()) != null) {
StringTokenizer token = new StringTokenizer(str);
while (token.hasMoreTokens()) {
String word = token
.nextToken("+*!:@=\\\"\';?><,./\n\t {()");
if (map.containsKey(word)) {
map.put(word, map.get(word) + 1);
} else {
map.put(word, 1);
}
WordCount++;
}
}// while
listMap = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(listMap,
new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> map1,
Map.Entry<String, Integer> map2) {
return (map1.getValue().compareTo(map2.getValue()));
}
});
for (Map.Entry<String, Integer> m : listMap) {
System.out.println(m.getKey() + ":" + m.getValue());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
结果:
getKey:1 for:1 args:1 package:1 println:1 else:1 static:1 get:1 compare:1 nextToken:1 class:1 compareTo:1 0:1 String[]:1 readLine:1 try:1 sort:1 entrySet:1 if:1 src:1 System:1 return:1 n:1 void:1 main:1 hasMoreTokens:1 containsKey:1 t:1 Override:1 out:1 InputStreamReader:2 com:2 br:2 Collections:2 int:2 1:2 FileNotFoundException:2 map2:2 map1:2 printStackTrace:2 put:2 IOException:2 lr:2 Comparator:2 catch:2 ArrayList:2 List:2 HashMap:2 File:2 FileInputStream:2 string:2 StringTokenizer:3 str:3 getValue:3 while:3 token:3 null:3 m:3 BufferedReader:3 public:3 listMap:4 WordCount:4 e:4 word:5 Entry:6 map:6 io:6 util:7 Map:8 new:8 Integer:8 String:10 }:12 import:13 java:14