题目要求:

  输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。

源码:

  

package demo;
import java.io.File; 
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);
         FileReader fileReader = new FileReader("C:\\Users\\dell\\Documents\\Tencent Files\\2436124704\\FileRecv\\Harry Potter and the Sorcerer's Stone.txt");
         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();
 for(j=0;j<ss.length;++j)
 {
  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]++;
  }
 }
 
  
  
 
}
/*for(j=0;j<26;++j)
{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文件中英文字母出现频率排序问题的更多相关文章

  1. 关于TXT文件中英文单词出现频率排序问题

    题目要求: 指定文件目录, 但是会递归遍历目录下的所有子目录,输出文件中所有不重复的单词,按照出现次数由多到少排列. 源码: package word; import java.io.File;  i ...

  2. Java实验--统计字母出现频率及其单词个数

    本周的实验要求在之前实现统计单词的基础之上(可以见之前博客的统计单词的那个实验),对其进行修改成所需要的格式,统计字母出现频率的功能,并按照一定的格式把最终结果的用特定的格式在文本中显示出来 统计过程 ...

  3. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  4. 网站SEO优化之Robots.txt文件写法。

    作为网站开发者或网站管理员一定知道网站对搜索引擎的优化有多重要,好的网站不仅要有漂亮的界面,良好的用户体验,还要有较高的更新频率.要被百度.google这样的搜索引擎大量收录,才能增加网站展示量,访问 ...

  5. [matlab]改变矩阵的大小并保存到txt文件

    要完成的任务是,加载一个保存在txt文件中的矩阵, 并把它扩大10倍,并且要再次保存回去 %加载txt文件 >load('Matrix.txt'); %扩大10倍 repmat(Matrix,r ...

  6. Windows设置.txt文件默认打开程序

    一.配置某个程序默认打开哪些类型的文件(以firefox为例) 依次打开”控制面板\程序\默认程序“,点击”设置默认程序“ 在右侧列表找到firefox,选中 以firefox为例,”将此程序设置为默 ...

  7. java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数

    package com.swift.jinji; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im ...

  8. sed处理大txt文件(1G) 比如替换某一串字符串,或者删除一行

    1.将11.sql文件中"prompt"替换为"--prompt",然后保存为111.sql文件 sed -e "s,prompt,--prompt, ...

  9. web端自动化——Python读取txt文件、csv文件、xml文件

    1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...

随机推荐

  1. shell的debug模式

    如何调试shell脚本? 在指定shell运行版本时加上 '-x' #!/bin/bash   -x ➜ demo git:(master) ✗ cat debug.sh #!/bin/bash -x ...

  2. JDBC 基础用法学习

    JDBC概述 java 数据库链接,sun公司退出的 java 访问数据库的标准规范接口 是一种用于执行SQL语句的 java API 可以作为多种关系数据库提供统一接口 是一组 java 工具类和接 ...

  3. JDBC--处理Blob

    1.LOB(Large Objects)大对象,是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储多达4GB的数据) --LOB分类两种类型:1)内部LOB: 2)外部LOB: -- ...

  4. socket udp编程的一些积累的记录

    接了个小活,要求写udp的客户端,循环接收服务端的固定的指令并显示数据 我设计的逻辑是,用户在界面输入框输入服务器ip.端口,随后udp连接,开启线程循环接收,接收指令,解析成数据,存在结构体的lis ...

  5. [PHP]新版的mongodb扩展安装和使用

    旧版的mongo扩展已经不推荐使用了,在php7以上一般是安装和使用新版的mongodb扩展 ubuntu下 apt-get install php-mongodb 例如下面的代码进行了查询和插入集合 ...

  6. Python整合pdf【新手必学】

    在下载课件时往往会分成很多个小的pdf,一个也就几页,想要整合成一整个大pdf,于是百度了一下,网上有很多在线的pdf整合器,但是由于这蛋疼的网速,流量还要花钱,还是想要本地搞. 说python是万能 ...

  7. RTT学习之软件包

    网络工具集 (NetUtils) Ping 工具: 是一种网络诊断工具,用来测试数据包能否通过 IP 协议到达特定主机,依赖于LWIP,支持域名和IP访问: NTP 工具:NTP 是网络时间协议 (N ...

  8. P3368 (模板)树状数组2

    借这个题学新姿势,这个题需要利用差分才能AC,普通树状树有3个点过不了. 差分原理(参考题解区大佬): 一个例子,一组数据 $ a[] = { 1, 5, 4, 2, 3 } $,差分后得到 $ b[ ...

  9. 计算机二级-C语言-程序填空题-190115记录-fprintf()函数和fscanf()函数的使用。

    //给定程序,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myflie3.txt的文本文件中,然后再顺序读出显示在屏幕上. //重难点:fprintf()函数和fscanf()函数的使 ...

  10. 解决:hudson.plugins.git.GitException: Could not init

    解决: