zoukankan      html  css  js  c++  java
  • 读取文件,计算字母出现次数和频率,按顺序打印

    用BufferedReader类读取文件,数组记录次数,冒泡法排序,最后打印

     

    package test01;
    
    import java.io.*;
    import java.util.*;
    import java.text.DecimalFormat;
    
    public class Zimu0 {
    
        public static void main(String[] args) throws IOException 
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\piao.txt")));
            int[] count  = new int[52];
            char[] c = new char[1];
            int len = br.read(c);
            while(len!=-1) {
                if(c[0]<='Z'&&c[0]>='A') {
                    int number = c[0];
                    count[number-65]++;
                }
                else if(c[0]<='z'&&c[0]>='a') {
                    int number = c[0];
                    count[number-71]++;
                }
                len = br.read(c);
            }
            Print(count);
            br.close();
        }
        
        public static int add(int[] count)
        {
            int sum=0;
            for(int i=0;i<count.length;i++)
            {
                sum += count[i];
            }
            return sum;
        }
        
        public static void Print(int[] count) 
        {
            int sum=add(count);
            char [] b = new char[52];
            DecimalFormat df= new DecimalFormat("######0.00");
            
            for(int i=0;i<52;i++) {
                char abc;
                if(i<26){
                    abc = (char)(i+65);
                }
                else {
                    abc = (char)(i+71);
                }
                b[i]=abc;
            }
            
            for(int i=0;i<b.length-1;i++)
            {
                for(int j=0;j<b.length-i-1;j++)
                {
                    if(count[j]<count[j+1])
                    {
                        int t=count[j];
                        count[j]=count[j+1];
                        count[j+1]=t;
                        
                        char y=b[j];
                        b[j]=b[j+1];
                        b[j+1]=y;
                        
                    }
                }
            }
            System.out.println("字母	次 数	占 比");
            for(int i=0;i<52;i++) {
                System.out.println(b[i]+":	"+count[i]+"	"+df.format((double)100*count[i]/sum)+"%");
            }
            
        }
        
    }
  • 相关阅读:
    CodeSmith中SchemaExplorer类详解
    配置 TransactSQL 调试器
    获取SQL所有数据库名、所有表名、所有字段名、表字段长度
    SQL SERVER数据类型与C#数据类型对照表
    C# orm linq 真的不错
    游戏外挂教程
    RDLC钻取式报表开发
    脚本整理
    访问Exchange Mail
    本人开发的带提示的TextBox控件
  • 原文地址:https://www.cnblogs.com/a8047/p/13923055.html
Copyright © 2011-2022 走看看