Java实现 统计单词出现的次数并按照单词频率从高到低输出
2016-06-05 16:26
826 查看
import java.util.*;
import java.util.Map.Entry;
public class CountWord {
public static void sort(Map<String,Integer> map)
{
List<Entry<String, Integer>> list=new ArrayList<Entry<String,Integer>>();
for (Entry<String, Integer> entry : map.entrySet()) {
list.add(entry);
}
Collections.sort(list,new EntryComparator());
for (Entry<String, Integer> obj : list) {
System.out.println(obj.getKey() + "\t" + obj.getValue());
}
}
public static void StatList(String str)
{
HashMap<String, Integer> map=new HashMap<>();
String []slist=str.split("\\W+");//作用:删除标点字符,\W意思是非单词字符;
for(int i=0;i<slist.length;i++)
{
// if (!map.containsKey(slist[i])) {
// map.put(slist[i], 1);
// }else{
// map.put(slist[i],map.get(slist[i])+1);
// }
Integer fre=map.get(slist[i]);
map.put(slist[i], fre==null ? 1:fre+1);
}
sort(map);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine())
{
String str=sc.nextLine();
StatList(str);
}
//String string="Hello,welcome to trend!to Hello to";
sc.close();
}
}
class EntryComparator implements Comparator<Entry<String, Integer>> {
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue() - o1.getValue();
}
}
import java.util.Map.Entry;
public class CountWord {
public static void sort(Map<String,Integer> map)
{
List<Entry<String, Integer>> list=new ArrayList<Entry<String,Integer>>();
for (Entry<String, Integer> entry : map.entrySet()) {
list.add(entry);
}
Collections.sort(list,new EntryComparator());
for (Entry<String, Integer> obj : list) {
System.out.println(obj.getKey() + "\t" + obj.getValue());
}
}
public static void StatList(String str)
{
HashMap<String, Integer> map=new HashMap<>();
String []slist=str.split("\\W+");//作用:删除标点字符,\W意思是非单词字符;
for(int i=0;i<slist.length;i++)
{
// if (!map.containsKey(slist[i])) {
// map.put(slist[i], 1);
// }else{
// map.put(slist[i],map.get(slist[i])+1);
// }
Integer fre=map.get(slist[i]);
map.put(slist[i], fre==null ? 1:fre+1);
}
sort(map);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine())
{
String str=sc.nextLine();
StatList(str);
}
//String string="Hello,welcome to trend!to Hello to";
sc.close();
}
}
class EntryComparator implements Comparator<Entry<String, Integer>> {
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue() - o1.getValue();
}
}
相关文章推荐
- spring实现固定时间定时器
- MyEclipse使用总结——MyEclipse10安装SVN插件
- JavaAPI之AnnotatedElement接口
- Java多线程-实现多线程:Executor框架
- Spring中的p标签(转)good
- SpringMVC深入理解
- Rxjava和Retrofit相结合
- javaAPI之Field
- 使用Java读取配置文件
- java中String字符串的替换函数:replace与replaceAll的区别
- spring-boot-starter-amqp踩坑记
- Java千百问_03基础语法(014)_volatile关键字有什么用
- struts2的Action访问Servlet的几种方式和全局result
- Java并发编程-ThreadFactory接口
- JAVAWeb开发学习笔记
- springMVC+Java验证码完善注册功能
- java多线程之对ThreadLocal类的理解
- Spring+Struts2+Mybatis整合
- java 输出九九乘法表
- java 抽象类 接口