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 多线程不安全_多线程并发为什么