java课程课后作业190502之单词统计
自己想的方法一直都不是很好,但是又一直忘了改自己的算法,只能硬着头皮接着用自己以前的老方法了
第0步:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。
不难看出,这个只要求字母出现的频率,那么我们在读取文件的时候是采取的一次性全部读取,然后用String类自带的方法,将整个字符串转化成每个字符组成的字符串数组,然后获取长度之后一次for循环,然后与26字母进行比对,然后获得数量,最后进行排序。
for (int i = 0; i < shu.length; i++) {
switch (shu[i]) {
case 'a':
zimu[0] = 'a';
count[0]++;
break;
case 'b':
zimu[1] = 'b';
count[1]++;
break;
case 'c':
zimu[2] = 'c';
count[2]++;
break;
case 'd':
zimu[3] = 'd';
count[3]++;
break;
case 'e':
zimu[4] = 'e';
count[4]++;
break;
case 'f':
zimu[5] = 'f';
count[5]++;
break;
case 'g':
zimu[6] = 'g';
count[6]++;
break;
case 'h':
zimu[7] = 'h';
count[7]++;
break;
case 'i':
zimu[8] = 'i';
count[8]++;
break;
case 'j':
zimu[9] = 'j';
count[9]++;
break;
case 'k':
zimu[10] = 'k';
count[10]++;
break;
case 'l':
zimu[11] = 'l';
count[11]++;
break;
case 'm':
zimu[12] = 'm';
count[12]++;
break;
case 'n':
zimu[13] = 'n';
count[13]++;
break;
case 'o':
zimu[14] = 'o';
count[14]++;
break;
case 'p':
zimu[15] = 'p';
count[15]++;
break;
case 'q':
zimu[16] = 'q';
count[16]++;
break;
case 'r':
zimu[17] = 'r';
count[17]++;
break;
case 's':
zimu[18] = 's';
count[18]++;
break;
case 't':
zimu[19] = 't';
count[19]++;
break;
case 'u':
zimu[20] = 'u';
count[20]++;
break;
case 'v':
zimu[21] = 'v';
count[21]++;
break;
case 'w':
zimu[22] = 'w';
count[22]++;
break;
case 'x':
zimu[23] = 'x';
count[23]++;
break;
case 'y':
zimu[24] = 'y';
count[24]++;
break;
case 'z':
zimu[25] = 'z';
count[25]++;
break;
case 'A':
zimu[26] = 'A';
count[26]++;
break;
case 'B':
zimu[27] = 'B';
count[27]++;
break;
case 'C':
zimu[28] = 'C';
count[28]++;
break;
case 'D':
zimu[29] = 'D';
count[29]++;
break;
case 'E':
zimu[30] = 'E';
count[30]++;
break;
case 'F':
zimu[31] = 'F';
count[31]++;
break;
case 'G':
zimu[32] = 'G';
count[32]++;
break;
case 'H':
zimu[33] = 'H';
count[33]++;
break;
case 'I':
zimu[34] = 'I';
count[34]++;
break;
case 'J':
zimu[35] = 'G';
count[35]++;
break;
case 'K':
zimu[36] = 'K';
count[36]++;
break;
case 'L':
zimu[37] = 'L';
count[37]++;
break;
case 'M':
zimu[38] = 'M';
count[38]++;
break;
case 'N':
zimu[39] = 'N';
count[39]++;
break;
case 'O':
zimu[40] = 'O';
count[40]++;
break;
case 'P':
zimu[41] = 'P';
count[41]++;
break;
case 'Q':
zimu[42] = 'Q';
count[42]++;
break;
case 'R':
zimu[43] = 'R';
count[43]++;
break;
case 'S':
zimu[44] = 'S';
count[44]++;
break;
case 'T':
zimu[45] = 'T';
count[45]++;
break;
case 'U':
zimu[46] = 'U';
count[46]++;
break;
case 'V':
zimu[47] = 'V';
count[47]++;
break;
case 'W':
zimu[48] = 'W';
count[48]++;
break;
case 'X':
zimu[49] = 'X';
count[49]++;
break;
case 'Y':
zimu[50] = 'Y';
count[50]++;
break;
case 'Z':
zimu[51] = 'Z';
count[51]++;
}
}
int ci = 0;
int sum = 0;
System.out.println("短文中各字母出现情况统计如下:");
for (int i = 0; i < 26; i++) {
count[i] += count[i + 26];
if (count[i] != 0) {
ci++;
sum += count[i];
System.out.println(ci + ".字母" + zimu[i] + "的出现次数是:" + count[i]);
}
} for (int i = 0; i < 26; i++) {
System.out.println(zimu[i] + "出现的百分比为:" + df.format(count[i] * 1.0 / sum));
}
System.out.println("字母共计:" + sum + "个");
第1步:输出单个文件中的前 N 个最常出现的英语单词。
作用:一个用于统计文本文件中的英语单词出现频率。
单词:以英文字母开头,由英文字母和字母数字符号组成的字符串视为一个单词。单词以分隔符分割且不区分大小写。在输出时,所有单词都用小写字符表示。
在单词中,我想到的方法则是将上面的方法进行的了一点变化,第0步是将字符分隔成为String数组,那在第一步,就变成了把字符变成了字符串,但是之前我们需要的是将一些特别符号转换成成为一个符号,然后再对这个符号进行分割,这样就可以获得单词。
//先使用replace方法,替换特殊符号
//然后再使用map得到个数
Map<String,Integer> map=new HashMap<String,Integer>();
for(String str : temp){
if(map.containsKey(str)){
map.put(str, map.get(str) + 1);
}else{
map.put(str, 1);
}
}
java课程课后作业190502之单词统计的更多相关文章
- java课程课后作业190502之单词统计续集
第1步:输出单个文件中的前 N 个最常出现的英语单词. 功能1:输出文件中所有不重复的单词,按照出现次数由多到少排列,出现次数同样多的,以字典序排列. 功能2: 指定文件目录,对目录下每一个文件执行统 ...
- java课程课后作业190606之计算最长英语单词链
一个文本文件中有N 个不同的英语单词, 我们能否写一个程序,快速找出最长的能首尾相连的英语单词链,每个单词最多只能用一次.最长的定义是:最多单词数量,和单词中字母的数量无关. 统一输入文件名称:inp ...
- java课程课后作业190616之个人学期总结
在团队开始的那一周,我们做了作品的功能畅想,在讲台上谈论了自己的产品可能会有的功能,比如说课程查找功能,空教室查找功能,霸屏功能,课程留言功能等,当然,随着开发的推进,我也发现了有些功能上实现的困难, ...
- JAVA课程课后作业03之作业一
作业:使用类的静态字段和构造函数,可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 代码: package TestJava; import java ...
- java课程课后作业190425之一维数组最大子数组(界面实现)
题目要求: 1.在第一个问题过程中,我在以前的代码中好像已经写出了这个功能,想要实现这个功能,我们只需要在我们储存的数组和是负数的时候对中转值进行重新赋值就可以得到新的数值的起始位置,而他的终了位置就 ...
- Java课程课后作业190315之从文档中读取随机数并得到最大连续子数组
从我上一篇随笔中,我们可以得到最大连续子数组. 按照要求,我们需要从TXT文档中读取随机数,那在此之前,我们需要在程序中写入随机数 import java.io.File; import java.i ...
- java课程课后作业05之动手动脑
一.使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件 此代码没有使用walkfiletree,两者的差别在于walkfiletree在遍历文件的时候有一 ...
- java课程课后作业04之动手动脑
一.多层的异常捕获-1 先贴出代码: public class CatchWho { public static void main(String[] args) { try { try { thro ...
- JAVA课程课后作业03之动手动脑
一.构造函数 问题一: 错误代码如图: 错误原因:从图片中的编译报错的地方来看,程序是在给新的对象分配空间是出现了问题,因而我们往下观察Foo类,Foo类的构造方法是有一个参数的有参方法,而前面构造新 ...
随机推荐
- L/SQL Developer 和 instantclient客户端安装配置
PL/SQL Developer 和 instantclient客户端安装配置(图文) 一: PL/SQL Developer 安装 下载安装文件安装,我这里的版本号是PLSQL7.1.4.1391, ...
- 实战mysql存储程序与定时器
home198979 实战mysql存储程序与定时器 博客分类: mysql 存储过程定时器eventprocedure实战 需求:一个庞大的日志表,现每天做定时统计一天的总数,放另一个表中,方便查 ...
- Heap(堆)的基础知识入门
堆 逻辑结构: 1 / \ 1 3 / \ / \ 4 5 6 null 物理结构; 1.首先堆是一个完全二叉查找书(Co ...
- POJ1471 Tree/洛谷P4178 Tree
Tree P4178 Tree 点分治板子. 点分治就是直接找树的重心进行暴力计算,每次树的深度不会超过子树深度的\(\frac{1}{2}\),计算完就消除影响,找下一个重心. 所以伪代码: voi ...
- VMware Tools 组件、配置选项和安全要求
- springCloud 之 Eureka服务治理机制及代码运行
服务提供者 服务注册: 服务提供者在启动的时候通过发送Rest请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息.Eureka Server在收到这个请求后,将元数 ...
- 使用BP拦截POST型请求包
1.安装phpstudy并下载wordpress 文件,安装在phpstudy的www目录下 phpstudy下载地址:https://www.xp.cn/download.html wordpres ...
- android:imeOptions
转自:http://www.cnblogs.com/qiengo/archive/2012/05/03/2480857.html 默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软 ...
- 百度小程序-接入自然搜索-API提交Url-c#开发
开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容.因为小程序资源被索引后,才可能在搜索结果中展现. 百度也提供了小程序的自然搜索提交入口.一共有两种方式: 第一种是用已有的H5网站资源 ...
- Dive into re Module in Python
Dive into RE in Python Standard re module in python is powerful to handle text manipulation,such as ...