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());
}
}

java统计一个文本文件英文单词的更多相关文章

  1. java统计一个子串在指定字符串中出现的次数

    今天查着用了用String类里的几个方法,分享下代码 题目要求:统计一个子串在指定字符串中出现的次数( 提示java字串出现了6次) public class SearchSameString { p ...

  2. Java统计一个字符串中各个字符出现的次数

    相信很多人在工作的时候都会遇到这样一个,如何统计一个字符串中各个字符出现的次数呢,这种需求一把用在数据分析方面,比如根据特定的条件去查找某个字符出现的次数.那么如何实现呢,其实也很简单,下面我贴上代码 ...

  3. Java读取一个文本文件拼接成一个字符串(readFileToString)

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  4. java怎么实现统计一个字符串中字符出现的次数

    问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现 ...

  5. Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)

    要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...

  6. Javafx-【直方图】文本频次统计工具 中文/英文单词统计

    上周倒腾了下 javafx,本来是做平时成绩系统.跟老师提了一下 javafx,他突然兴起,发了个统计中文和英文单词并以直方图显示的实验......只给两三天的期限,笑着说考验我们的潜力SOS,于是带 ...

  7. Java读写大文本文件(2GB以上)

    如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n': package kddcup ...

  8. JAVA 统计字符串中中文,英文,数字,空格的个数

    面试题:输入一行字符,分别统计出其中英文字母.中文字符.空格.数字和其它字符的个数 可以根据各种字符在Unicode字符编码表中的区间来进行判断,如数字为'0'~'9'之间,英文字母为'a'~'z'或 ...

  9. 产生10个随机数5-9之间 统计一个int类型的一维数组中有多少个在[min,max]之间的数

    * 产生10个随机数5-9之间 统计一个int类型的一维数组中有多少个在[min,max]之间的数 */ import java.util.*; public class Demo{ public s ...

  10. java 从一个工程action 跳转到另外一个工程action

    实现功能:java 从一个工程action 跳转到另外一个工程action 在我们实际编程的过程中,大家一定遇到过这种情况,那就是在一个工程中,需要使用到另外一个工程的实体Bean和方法.那么遇到这种 ...

随机推荐

  1. CVE-2023-25813 漏洞

    自己使用Nestjs 搭配 Sequelize ,在安装新包的时候提示有Critical 风险.有漏洞嘛,要第一时间处理,要处理,除了升级,还要看一下这个漏洞如何复现. 粗略得到结果如下: CVE-2 ...

  2. Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.数组分类 2.定义数组方法 二.正则表达式 1.元字符 2.表示次数 3.位置锚定 4.分组 5.扩展正则表达式 三.文本三剑客之AWK 1.awk 2.使用格式 3.处 ...

  3. js中各种导出和导入

        exports和module exports的区别: exports是module exports的地址引用 export和export default的区别: export和export d ...

  4. docker kafka 一键搞定

    1. docker network create app-tier 2. docker run -d --name zookeeper-server \ --network app-tier \ -e ...

  5. cocos2d-lua 控制台输入Lua指令方便调试

    用脚本进行开发,如果不能实时去输入指令,就丧失了脚本的一大特色,所以对cocos2d-x程序稍微修改下,使其可以直接从控制台读入lua指令,方便调试. 1 首先在行首加入lua的引用,如下 1 #in ...

  6. CSP202104-4 校门外的树

    设状态时,首先从简单状态设起: 一维不行再试二维.简单状态应付不了再设复杂的(因为某些状态可以体现在状态转移的过程中,或者说状态转移方程中,不一定体现在原式中) E.g. 计算机软件能力认证考试系统- ...

  7. python 成功解决import librosa出错问题

    在做音频处理时,用到了librosa这个库,但是一直在报错,一开始以为代码错误,后来发现import的时候就已经出错了. 我给他卸载了重新安装,结果是一样的,报错如下: Traceback (most ...

  8. MargeSort

    归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.将已有序的子序列合并,得到完全有序的序列: ...

  9. Android学习——控件ProgressBar

    1.常用属性

  10. Influxdb客户端使用

    Influxdb客户端使用 1. 简介 Influxdb在网络上可以搜索到一个叫InfluxdbStudio的工具,但只能在window下使用,有时在其他系统下做简单数据查询时就比较麻烦,下面以Inf ...