对文本文件中的单词统计出现的次数(即词频)并按词频的从高到低排序
2017-03-13 19:43
483 查看
//业务需求:求给定words.txt中的相同单词出现的次数(即词频),并按照单词出现次数的从高到低排序!(原文本文件中只有单词和空格,且全为小写)
//关键词 IO流 HashMap ArrayList
//业务分析:1.读入文件,拿到内容;2.解析文件,进行切分;3.将每个单词放入集合;4.统计出现次数并排序
代码如下:
public class Test33 {
public static void main(String[] args) throws Exception {
//读文件
try(BufferedReader br = new BufferedReader(new FileReader("D:/words.txt"))){
HashMap<String, Integer> map = new HashMap<String, Integer>();//建一个存放读入数据的集合
String line = null;//每次读取一行
while((line=br.readLine())!=null){//循环读入
String[] split = line.split(" ");//切分
for(String word : split){//遍历字符串数组
if(word.length()!=0){//判断对象不为空
if(map.containsKey(word)){//判断集合中是否包括目标单词
map.put(word, map.get(word)+1);//如果包括,value值+1,如果不包括,将新单词放入集合中
}
else{
map.put(word, 1);
}
}
}
}
Set<Entry<String,Integer>> entrySet = map.entrySet();//集合中的元素以k,v形式取出
ArrayList<Entry<String,Integer>> list = new ArrayList<Entry<String, Integer>>(entrySet);//放入List集合中
Collections.sort(list, new Comparator<Entry<String, Integer>>() {//进行降序排序
@Override//重写比较器
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
System.out.println(list);//打印结果
}
}
}
//关键词 IO流 HashMap ArrayList
//业务分析:1.读入文件,拿到内容;2.解析文件,进行切分;3.将每个单词放入集合;4.统计出现次数并排序
代码如下:
public class Test33 {
public static void main(String[] args) throws Exception {
//读文件
try(BufferedReader br = new BufferedReader(new FileReader("D:/words.txt"))){
HashMap<String, Integer> map = new HashMap<String, Integer>();//建一个存放读入数据的集合
String line = null;//每次读取一行
while((line=br.readLine())!=null){//循环读入
String[] split = line.split(" ");//切分
for(String word : split){//遍历字符串数组
if(word.length()!=0){//判断对象不为空
if(map.containsKey(word)){//判断集合中是否包括目标单词
map.put(word, map.get(word)+1);//如果包括,value值+1,如果不包括,将新单词放入集合中
}
else{
map.put(word, 1);
}
}
}
}
Set<Entry<String,Integer>> entrySet = map.entrySet();//集合中的元素以k,v形式取出
ArrayList<Entry<String,Integer>> list = new ArrayList<Entry<String, Integer>>(entrySet);//放入List集合中
Collections.sort(list, new Comparator<Entry<String, Integer>>() {//进行降序排序
@Override//重写比较器
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
System.out.println(list);//打印结果
}
}
}
相关文章推荐
- 一个文本文件统计各个单词出现的频率最高的10个词以及次数
- 意外收获-ruby编写的一个简单统计单词出现次数的程序
- scala统计一个文件夹下面所有文件的单词出现的总次数
- 用python统计文件中各个单词出现的次数
- 利用stl统计单词出现次数并排序
- 统计单词出现的最多次数(Trie树)
- 针对一个文件 统计其中的单词和字符数 找出文件中出现次数最多的单词数 将文件中出现的单词按频率进行排序并输出
- HashMap分拣存储1:统计每个单词出现的次数
- 统计所有'单词'出现的次数
- PHP函数库06:PHP统计字符串里单词出现次数
- 统计一篇英文文件中,单词出现的次数,并按单词的长度进行排序
- 一个简单的例子理解C++ map, 运用map统计单词出现的次数
- spark统计文献中每个英文单词出现的次数
- 统计一串字符串中出现次数最多和次多的单词
- 统计单词出现的最多次数(Trie树)
- 统计书中单词出现次数, 然后把数据生成pdf
- 遍历Map方法一(通过HashMap类实现统计单词出现次数)
- 统计一段英文每个单词出现的次数
- 编写一个脚本,统计log文件中首个单词出现的次数
- JS统计单词出现的次数。