• Java05文件与流——课堂测试1


    要求1:

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

    字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母出现的总数)

    如果两个字母出现的频率一样,那么就按照字典序排列。

    package Count1;
    import java.io.FileReader;
    import java.io.IOException;
    import java.text.DecimalFormat;
    import java.io.BufferedReader;
    
    public class Count_fly {
    
        public static void main(String[] args) throws IOException{
            FileReader fr=new FileReader("F://FLY.txt");
            BufferedReader br=new BufferedReader(fr);
            DecimalFormat fnum=new DecimalFormat("0.00");
            int f=0;
            int[] number=new int[52];
            double[] rate=new double[52];
            StringBuffer sb=new StringBuffer();
            String s=null;
            while((s=br.readLine())!=null) {
                sb.append(s);
            }
            br.close();
            fr.close();
            for(int i=0;i<sb.length();i++) {
                char ch=sb.charAt(i);
                if(ch!=' '&&ch!='\n'&&ch!='\t') {
                    f++;
                }
                int m=ch;
                if(ch<='Z'&&ch>='A') {
                    number[m-65]++;
                }
                if(ch<='z'&&ch>='a') {
                    number[m-71]++;
                }
            }
            System.out.println(f);
            for(int j=0;j<52;j++) {
                rate[j]=number[j]*100/(double)f;
            }
            for(char m=65,i=0;m<=90&&i<26;i++,m++) {
                System.out.println(m+":"+fnum.format(rate[i])+"%");
            }
            for(char m=97,i=26;m<=122&&i<52;i++,m++) {
                System.out.println(m+":"+fnum.format(rate[i])+"%");
            }    
        }
    }

    课堂测试1虽然简单但是文件方面没有学太好所以写起来还是有难度

  • 相关阅读:
    杂项
    导出查询数据(大数据量)
    设置现有字段自增
    C++ 矩形交集和并集的面积-离散化
    Python使用flask架构、跨域
    匈牙利命名法
    C++ main函数
    windows编译boost
    mfc HackerTools监控键盘按键
    mfc HackerTools远程线程注入
  • 原文地址:https://www.cnblogs.com/zyljal/p/14166096.html
Copyright © 2020-2023  润新知