输出《Harry Potter and the Sorcerer's Stone》文本中的前N个最长用的英文单词及其数量

实验思路:

1. 利用输入流将文件当中内容读入。

2. 将文件内容存入StringBuffer中;

3. 利用String的split()方法将字符串分隔,并将其存入数组中;

4. 遍历数组将其存入Map<String, Integer>中

5. 利用Collections的sort()方法进行排序。

6.输出打印。

import java.io.*;
import java.util.*;
import java.util.Map.Entry;
public class two
{
public static int n=0;
public static void main(String[] args) {
Scanner input=new Scanner(System.in); int count=0;
int num=1;
String file1="Harry Potter and the Sorcerer's Stone.txt";
try
{
BufferedReader a=new BufferedReader(new FileReader(file1));
StringBuffer c=new StringBuffer();
String s;
while((s = a.readLine()) != null)
{
c.append(s);
}
String m=c.toString().toLowerCase();
String [] d=m.split("[^a-zA-Z0-9]+");
Map<String , Integer> myTreeMap=new TreeMap<String, Integer>();
for(int i = 0; i < d.length; i++) { if(myTreeMap.containsKey(d[i])) {
count = myTreeMap.get(d[i]);
myTreeMap.put(d[i], count + 1);
}
else {
myTreeMap.put(d[i], 1);
}
}
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(myTreeMap.entrySet());
//按降序排序
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { public int compare(Entry<String, Integer> k1, Entry<String, Integer> k2) {
return k2.getValue().compareTo(k1.getValue());
} });
System.out.println("请输入N的值:");
n=input.nextInt();
for(Map.Entry<String, Integer> map : list) {
if(num <= n) { System.out.println(map.getKey() + ":" + map.getValue());
num++;
}
else break;
}
a.close();
}
catch(FileNotFoundException e)
{ }
catch(IOException e)
{ }
}
}

  

输出《Harry Potter and the Sorcerer's Stone》文本中的前N个最长用的英文单词及其数量的更多相关文章

  1. 输出《Harry Potter and the Sorcerer's Stone》英文i的字母数量并排序

    要求1:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位.            字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母 ...

  2. Java的实验程序之输出单个文件中的前 N 个最常出现的英语单词

    日期:2018.10.11 星期四 博客期:016 题目:输出单个文件中的前 N 个最常出现的英语单词,并输出到文本文件中 在程序运行之前,我试着先写了字符的字母的总结,加载代码如下: //如下是第一 ...

  3. 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。-----力扣

    给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积. 示例: 输入: [1 ...

  4. CocoaLumberjack+XcodeColor(输出带有颜色的日志)在安装过程中遇到的问题

    在安装的时候遇到了各种坑,(在这里用到的pch文件的使用以及解决无法引入的问题,可以参考上午的文章) 一(XcodeColor的安装).在github上下载XcodeClolor的插件,并且安装,Xc ...

  5. 输出单个文件中的前 N 个最常出现的英语单词,并将结果输入到文本文件中。程序设计思路。

    将文件内容读取后存入StringBuffer中. 利用函数将段落分割成字符串,按(“,”,“.”,“!”,“空格”,“回车”)分割,然后存入数组中. 遍历数组,并统计每个单词及其出现的次数. 要求出文 ...

  6. 如何使用 awk 输出文本中的字段和列

    首先我们要知道,awk 能够自动将输入的行,分隔为若干字段.每一个字段就是一组字符,它们和其他的字段由一个内部字段分隔符分隔开来. 如果你熟悉 Unix/Linux 或者懂得 bash shell 编 ...

  7. cut 从文本中提取一段文字并输出

    1.命令功能 cut 从每个文件中截取选定部分并输出. 2.语法格式 cut  option  file 参数说明 参数 参数说明 -b (–bytes) 字节 -c (--characters) 字 ...

  8. 【C语言】将文本中汉字读入字符数组输出乱码

    输出中文字符乱码 今天从文件中将中文读入字符数组后输出发现其中文变成了乱码,,令人头大. 解决办法 将文本编码格式改成ANSI即可. 打开记事本->文件->另存为->更改编码格式-& ...

  9. 如何改变输出方式(让printf输出结果保存到TXT文本中)

    查阅相关资料,汇总如下: #include <stdio.h> #include <stdlib.h> int main() { char money= 's'; char a ...

随机推荐

  1. 【译文连载】 理解Istio服务网格(第二章 安装)

    全书目录 第一章 概述 本文目录 1.命令行工具安装 2. Kubernetes/OpenShift安装 3. Istio安装 4.示例Java微服务安装 4.1 源码概览 4.2 编译和部署cust ...

  2. 本地linux搭建的WordPress升级时需要输入FTP信息

    转自:https://blog.csdn.net/weixin_43837883/article/details/88751871 这是因为目录权限不正确所致 解决方法: 1.使用命令chown -R ...

  3. Python3(三) 变量与运算符

    一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1,   a='1',   a=(1,2),  ...

  4. k8s系列---Service之ExternalName用法

    需求:需要两个不同的namespace之间的不同pod可以通过name的形式访问 实现方式: A:在其他pod内ping [svcname].[namespace] ping出来到结果就是svc的ip ...

  5. LVS服务原理以及搭建

    一.LVS简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,目的在于使用集群技术和Linux操作系统实现一个高性能.高可用的服务器.它 ...

  6. 解决 webpack-dev-server 不能使用 IP 访问

    webpack 是众所周知很好用的打包工具,在开发 vue 项目时,vue-cli 就集成了 webpack.我们启一个服务:npm run dev然后在浏览器可是使用 http://localhos ...

  7. SAP SD 销售中的借贷项凭证

    SAP SD 销售中的借贷项凭证 SAP系统中,正常与客户的应收款都能通过销售订单来实现. 但实际操作中,常有收款后发现价格有误或其他原因需退款客户或补收客户货款的情况,或者客户需要少量的材料,但不能 ...

  8. spring boot 打包jar后访问classes文件夹的文件提示地址不存在

    报错内容:class path resource [client.p12] cannot be resolved to absolute file path because it does not r ...

  9. Linux如何定位文件在磁盘的物理位置

    我在学习研究Linux内核结构的时候,思考过一个问题:Linux如何定位文件在磁盘的物理位置每个文件都有一个inode,inode在内核代码中的数据结构如下: 1 struct ext4_inode ...

  10. [MySQL] mysql索引的长度计算和联合索引

    1.所有的索引字段,如果没有设置not null,则需要加一个字节.2.定长字段,int占4个字节.date占3个字节.char(n)占n个字符.3.变长字段,varchar(n),则有n个字符+两个 ...