关于TXT文件中英文字母出现频率排序问题
题目要求:
输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。
源码:
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileReader;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import java.io.FileWriter;
public class Demo {
static String[] save = new String[50000];
static float[] num1 = new float[26];
static float[] num2 = new float[26];
static float[] num3 = new float[52];
static char zimu[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
static int i = 0;
public static void main(String args[]) {
try {
System.out.println(System.in);
BufferedReader buf = new BufferedReader(fileReader);
String bufToString = "";
String readLine = "";
String[] myArray = new String[50000]; //100:这个值你自己定义,但不宜过大,要根据你文件的大小了,或者文件的行数
while((readLine = buf.readLine()) != null){
myArray[i] = readLine;
save[i]=myArray[i];
i++;
}
}
catch (Exception e) {
// e.printStackTrace();
System.out.println("连不上");
}
int length;
int j=0;
int t=0;
for(t=0;t<i;++t)
{
char ss[] = save[t].toCharArray();
{
if(ss[j]>='A'&&ss[j]<='Z')
{int k=(int)ss[j];
num1[k-65]++;
}
else if(ss[j]>='a'&&ss[j]<='z')
{int k=(int)ss[j];
num2[k-97]++;
}
}
}
{System.out.println(num2[j]);
}*/
float all=0;
for(j=0;j<26;++j)
{
all+=num1[j];
all+=num2[j];
}
for(j=0;j<26;++j)
{
num1[j]=num1[j]/all*100;
num2[j]=num2[j]/all*100;
}
for(j=0;j<26;++j)
{
num3[j]=num1[j];
num3[j+26]=num2[j];
}
for(j=0;j<52;++j)
{float[] max = new float[26];
int[] flag = new int[52];
int p=0;
for(t=0;t<52;++t)
{
if(num3[t]>max[0])
{
flag[0]=t;
max[0]=num3[t];
}
/*else if(num3[t]==max[0])
{
p++;
flag[p]=t;
max[p]=num3[t];
}*/
}
/*for(int k=0;k<p;++k)
{
System.out.println(zimu[flag[p]]+":"+max[p]+"%");
}*/
System.out.print(zimu[flag[p]]+":");
float fff=(float)(Math.round(max[p]*100))/100;
System.out.println(fff+"%");
num3[flag[p]]=0;
}
}
关于TXT文件中英文字母出现频率排序问题的更多相关文章
- 关于TXT文件中英文单词出现频率排序问题
题目要求: 指定文件目录, 但是会递归遍历目录下的所有子目录,输出文件中所有不重复的单词,按照出现次数由多到少排列. 源码: package word; import java.io.File; i ...
- Java实验--统计字母出现频率及其单词个数
本周的实验要求在之前实现统计单词的基础之上(可以见之前博客的统计单词的那个实验),对其进行修改成所需要的格式,统计字母出现频率的功能,并按照一定的格式把最终结果的用特定的格式在文本中显示出来 统计过程 ...
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理
篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...
- 网站SEO优化之Robots.txt文件写法。
作为网站开发者或网站管理员一定知道网站对搜索引擎的优化有多重要,好的网站不仅要有漂亮的界面,良好的用户体验,还要有较高的更新频率.要被百度.google这样的搜索引擎大量收录,才能增加网站展示量,访问 ...
- [matlab]改变矩阵的大小并保存到txt文件
要完成的任务是,加载一个保存在txt文件中的矩阵, 并把它扩大10倍,并且要再次保存回去 %加载txt文件 >load('Matrix.txt'); %扩大10倍 repmat(Matrix,r ...
- Windows设置.txt文件默认打开程序
一.配置某个程序默认打开哪些类型的文件(以firefox为例) 依次打开”控制面板\程序\默认程序“,点击”设置默认程序“ 在右侧列表找到firefox,选中 以firefox为例,”将此程序设置为默 ...
- java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数
package com.swift.jinji; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im ...
- sed处理大txt文件(1G) 比如替换某一串字符串,或者删除一行
1.将11.sql文件中"prompt"替换为"--prompt",然后保存为111.sql文件 sed -e "s,prompt,--prompt, ...
- web端自动化——Python读取txt文件、csv文件、xml文件
1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...
随机推荐
- springboot整合mybatis连接oracle
pom.xml: <!-- 链接:https://pan.baidu.com/s/1agHs5vWeXf90r3OEeVGniw 提取码:wsgm --> <dependency&g ...
- 欧拉降幂 (a^t)%c 模板
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll a,c,p,mod; ]; ll phi(ll ...
- linux搭建常用命令
nohup java -jar floodlight.jar >log.txt 运行jar,日志打印到log.txt中netstat -lnp|grep 88 查看 ...
- VUE style 绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- dbGet(三)
inst flat design下的instance Parent Object group, hInst, instTerm, io, pBlkg, ptn, rBlkg, sdp, topCell ...
- vue 实现 多个 数字滚动增加动效
参考网上其他同学写的 具体出处忘了,不然一定贴上,有问题请联系. 图一是具体js代码:二是设置定时器:三是dom节点需要写ref numberGrow (ele) { this.summaryData ...
- Java进阶学习(3)之对象容器(上)
对象容器 顺序容器 记事本的例子 UI设计和业务逻辑要分离 接口设计 add(String note); getSize(); getNote(int index); removeNote(index ...
- 在linux环境下python与C++混合编程
参考:在linux环境下编译C++ 程序 linux下python3调用c代码或者python3调用c++代码 https://blog.csdn.net/u013179327/article/det ...
- APP inventor 学习
中文教程:https://web.17coding.net/ 网页在线开发:http://app.gzjkw.net/#1 ai2.appinventor.mit.edu http://appinve ...
- 【PAT甲级】1089 Insert or Merge (25 分)(插入排序和归并排序)
题意: 输入一个正整数N(<=100),接着输入两行N个整数,第一行表示初始序列,第二行表示经过一定程度的排序后的序列.输出这个序列是由插入排序或者归并排序得到的,并且下一行输出经过再一次排序操 ...