zoukankan      html  css  js  c++  java
  • 课堂测试1

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

    源码:

    package words;
    import java.io.*;
    public class potter {
    public static void main(String[] args) {
    String temp=null;
    double []numlower=new double[26];
    double []numupper=new double[26];
    double sum=0;
    double num[]=new double[52];
    String str[]="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".split(" ");
    File filepath=new File("D:\poter.txt");
    try {
    FileReader reader=new FileReader(filepath);
    BufferedReader br=new BufferedReader(reader);
    try {
    while((temp=br.readLine())!=null) {
    for(int i=0;i<temp.length();i++) {
    if(temp.charAt(i)>='a'&&temp.charAt(i)<='z')
    {
    numlower[(int)temp.charAt(i)-97]++;
    sum++;
    }
    if(temp.charAt(i)>='A'&&temp.charAt(i)<='Z')
    {
    numupper[(int)temp.charAt(i)-65]++;
    sum++;
    }
    }
    }
    }catch(IOException e){ e.printStackTrace(); }
    }catch(FileNotFoundException e) { e.printStackTrace() ; }

    for(int i=0;i<26;i++)
    {
    num[i]=numlower[i];
    num[i+26]=numupper[i];
    }
    for(int i=0;i<52;i++)
    for(int j=0;j<51-i;j++){
    double numtemp;
    String tempch;
    if(num[j]<num[j+1])
    {numtemp=num[j];num[j]=num[j+1];num[j+1]=numtemp;
    tempch=str[j];num[j]=num[j+1];num[j+1]=numtemp;
    }
    }
    for(int i=0;i<52;i++)
    {System.out.print(str[i]+':'+num[i]+" ");
    System.out.printf("%.2f",num[i]*100/sum);
    System.out.println("%");
    }
    }
    }

     首先需要输入文本路径,算出各个字母数,字母总数,再将字母按照顺序排列

  • 相关阅读:
    配置FTP服务
    Tomcat
    LNMP环境配置(下)
    LNMP环境配置(上)
    Ansible---
    Ansible
    正则三剑客-------grep
    Docker仓库的使用与维护
    Docker 引擎的安装 -->>存储库安装
    shell脚本实例
  • 原文地址:https://www.cnblogs.com/PSLQYZ/p/11809565.html
Copyright © 2011-2022 走看看