首页 > 编程语言 >java统计一个文本文件英文单词

java统计一个文本文件英文单词

时间:2022-10-24 11:00:28浏览次数:47  
标签:map java 文本文件 Map int 英文单词 key new String

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

标签:map,java,文本文件,Map,int,英文单词,key,new,String
From: https://www.cnblogs.com/joranger/p/16820790.html

相关文章

  • [java] html转图片方案
    纯java项目后端进行HTML转图片公司有个需求是在小程序将订单信息按一定样式整理后转成图片。客户点击按钮下载后可以将图片保存,并可以直接在微信群里分享。由于时间紧迫......
  • Java方法
    Java方法方法的定义方法包括一个方法头和一个方法体,修饰符返回值类型方法名(参数类型参数名){...方法体...return返回值;}值传递和引用传递值传......
  • .Net对接Java接口加密不通过?
    前言  相信又不少小伙伴在对接第三方接口时遇到过这种情况:参数、排序、加密方式都按照接口文档进行处理了,可就是签名不通过,然后开始怀疑是不是参数漏了?参与加密的参数不......
  • JavaScript语法注释&数据类型和JavaScript语法变量
    JavaScript语法注释&数据类型注释:1.单行注释://注释内容2.多行注释:/*注释内容*/数据类型:1.原始数据类型(基本数据类型)1.number:数字。整数/小数/NaN(not......
  • 608 Javascript_语法_—元运算符 and 609 Javascript_语法_算数&比较运算符
    Javascript_语法_—元运算符一元运算符:只有一个运算数的运算符       ++,--,+(正号),-(符号)       ++(--),自增,自减           ++(--)先自增或......
  • 【XML】Java创建XML文档
    packageexample01;importorg.w3c.dom.Document;importorg.w3c.dom.Element;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilde......
  • JavaScript发展史和JavaScript语法与html结合方式
    JavaScript发展史JavaScript发展史:1.1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:C--,后来更名为:ScriptEase2.1995年,Netscape(网景)......
  • JavaScript简介
    JavaScript简介概念:一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有javascript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了功能:......
  • day16 正则表达式 & 反射 & Java内存模型(JMM)
    day16class1)获取一个类的所有信息(变量、方法、构造方法)2)创建类对象newInstance()Field1)访问变量或给变量赋值Method1)执行具体类对象的指定方法3.Method(获取方法对......
  • Java多线程(3):ThreadPool(上)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 开完一趟车完整的过程是启动、行驶和停车,但老司机都知道,真正费油的不是行驶,而是长时间的怠速、频繁地踩刹车等动作。因......