用java模拟词频统计。
有3个文件:text1: hello world
text2:hello hadoop
text3:hello mapreduce
对上面的文件进行词频统计:结果应该是:hello:3; hadoop:1; world:1; mapreduce:1
代码实现如下:
package count;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.StringTokenizer;
public class Count {
public static void main(String[] args) {
String [] text = new String[]{"hello world", "hello hadoop", "hello mapreduce"};
Hashtable ht = new Hashtable();
for(int i=0; i<3; i++){
StringTokenizer st = new StringTokenizer(text[i]);
while(st.hasMoreTokens()){
String word = st.nextToken();
if(!ht.containsKey(word))
ht.put(word, new Integer(1));
else{
int wc = ((Integer)ht.get(word)).intValue() + 1;
ht.put(word, new Integer(wc));
}
}
}
for(Iterator itr = ht.keySet().iterator(); itr.hasNext();){
String word = (String)itr.next();
System.out.print(word + ":" + (Integer)ht.get(word)+"; ");
}
}
}