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