package test;

import java.io.*;
import java.util.*;

public class wordCount2 {
public static void main(String[] args) throws IOException {
File file = new File("/Users/jiachenglin/Desktop/HP7.txt");
try (FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "gbk");
BufferedReader br = new BufferedReader(isr)) {
String str;
Map<String, Integer> map = new TreeMap<>();
while ((str = br.readLine()) != null) {
String[] words = str.split("[ ,.:;'!…\"{}()?\\[\\]]");
for (int i = 0; i < words.length; i++) {
String key = words[i].toLowerCase().trim();

//添加单词
if (key.length() > 0 && Character.isLetter(key.charAt(0))) {
if (!map.containsKey(key))
map.put(key, 1);
else
map.put(key, map.get(key) + 1);
}
}

}
//Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
List<Map.Entry<String, Integer>> entrys = new ArrayList<>(map.entrySet());
Collections.sort(entrys, new myComparator());
int flag=0;
String[] a=new String[1000000];
System.out.println("请输入要查看的单词数");
Scanner s=new Scanner(System.in);
flag=s.nextInt();
int i=0;
for (Map.Entry<String, Integer> entry : entrys) {
//输出单词和数目
a[i]=entry.getKey()+" "+entry.getValue();//利用字符串数组将Map中的key与value组合
i++;
}
for(int j=0;j<flag;j++){
System.out.println(a[j]);
}
} catch (IOException e) {
e.printStackTrace();
}

}

}
class myComparator implements Comparator<Map.Entry> {
public int compare(Map.Entry o1, Map.Entry o2) {
return ((Integer) o2.getValue()).compareTo((Integer) o1.getValue());
}
}

最新文章

  1. OC中的内存管理
  2. Linux里如何查找文件内容
  3. [wikioi 1307][poj 2054]欧少堆(乱搞)
  4. 132. Palindrome Partitioning II
  5. C++中复制构造函数与重载赋值操作符
  6. 在Laravel中使用swoole来取代nginx作为http服务器
  7. js数组sort排序方法的算法
  8. docker-compose yaml mysql和wordpress 一行命令搞定~~~
  9. git切换到新的远程地址
  10. POJ3683 Priest John&#39;s Busiest Day(2-SAT)
  11. Vim 中使用 vimim 来输入中文
  12. python3 小工具
  13. MAC系统上不能调试华为手机
  14. [solution] JZOJ-5458 质数
  15. 201306114357-实验3-C语言
  16. STM32F103X datasheet学习笔记---RCC(reset and clock control)
  17. echart力导向图
  18. 洛谷P2664 树上游戏(点分治)
  19. 串口实现FIFO接受数据(V2)
  20. easyui学习笔记9—手风琴格子的增,删和选择

热门文章

  1. ecplise项目启动出现permgen space异常内存不够
  2. Go语言快速入门
  3. Spring事务的四大特性
  4. StunServer
  5. Cygwin64静默安装办法
  6. kuangbin学习
  7. AcWing 841. 字符串哈希 2022/5/25
  8. 深度剖析生产工厂用ERP系统进行管理有哪些优势
  9. DPU02是一个高度集成的USB转UART的桥接控制器
  10. 文本超出换行添加white-space:wrap无效