java 词频_java程序:统计单词词频,
用java統計英文文章單詞詞頻,源碼如下:問題:輸出時不要按鍵輸出,要按鍵值從大到小輸出。鍵值相同時按鍵從大到小排序(比如:any=3,an=3時,輸出順序為:an=3any=3)。比如:原來輸...
用java統計英文文章單詞詞頻,源碼如下:
問題:輸出時不要按鍵輸出,要按鍵值從大到小輸出。鍵值相同時按鍵從大到小排序(比如:any=3,an=3時,輸出順序為:an=3 any=3)。
比如:原來輸出時是:
a=3
an=2
to=14
they=5
現在要變成:
to=14
they=5
a=3
an=2
要有實現的代碼。謝謝!
import java.util.*;
import java.io.*;
public class wordsRate {
public static void main(String[] args) throws Exception {
BufferedReader infile = new BufferedReader(new FileReader("article.txt"));
String string;
String file = null;
while ((string = infile.readLine()) != null) {
file += string;
}
file = file.toLowerCase();
file = file.replaceAll("[^A-Za-z]", " ");
file = file.replaceAll("\\s+", " ");
String words[];
words = file.split("\\s+");
Map hashMap = new HashMap();
for (int i = 0; i < words.length; i++) {
String key = words[i];
if (hashMap.get(key) != null) {
int value = ((Integer) hashMap.get(key)).intValue();
value++;
hashMap.put(key, new Integer(value));
} else {
hashMap.put(key, new Integer(1));
}
}
Map treeMap = new TreeMap(hashMap);
Set entrySet = treeMap.entrySet();
BufferedWriter bw = new BufferedWriter(new FileWriter("result.txt"));
for (Iterator iterator = entrySet.iterator(); iterator.hasNext();) {
String result =iterator.next().toString();
bw.write(result);
bw.newLine();
bw.flush();
}
}
}
展開
總結
以上是生活随笔為你收集整理的java 词频_java程序:统计单词词频,的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 精通_你真的精通Java吗?
- 下一篇: java集合性能_Java集合性能分析-