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