Reading a file output frequency of each letter

package test11;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

public class zimu {
    public static void main(String[] args)throws IOException
    {
        List<Integer> list=new ArrayList<>();
        DecimalFormat df=new DecimalFormat("######0.00");  
         FileInputStream fip = new FileInputStream("C:\\Users\\DELL\\Desktop\\Harry Potter and the Sorcerer's Stone.txt");
        InputStreamReader reader = new InputStreamReader(fip, "gbk");
        StringBuffer sb = new StringBuffer();
        while (reader.ready()) {
            sb.append((char) reader.read());
        }
        reader.close();
        fip.close();
        
        int i;
        String A=sb.toString();
        String M="abcdefghijklmnopqrstuvwxyz";
        String temp = "";
        char NUM[]=new char[A.length()];
        char Z[]=new char[26];
        int X[]=new int[26];
        int MAX=0;
        Z=M.toCharArray();
        for(int k=0;k<26;k++)
        {
            X[k]=0;
        for(i=0;i<A.length();i++)
        {
            NUM[i]=A.charAt(i);
            IF ];(The Z [K] == NUM [I] || the Z [K] == CH (NUM [I])) 
            { 
                X-[K] ++ ; 
            } 
        } 
        } 
        System.out.println ( "article in English number of letters are: " ); 
        
        Double SUM = 0 ; 
        System.out.println ( " Sort follows: " );
         for (I = 0; I <25; I ++ )
             for ( int K = 0; K <25- I; K ++ ) 
            { 
                IF (X-[K] <X-[K +. 1 ]) 
                { 
                    int temp2 of = X-[K]; 
                    X-[K] = X-[K +. 1
                    X-[K + 1'd] = temp2 of;
                     char Temp3 = the Z [K]; 
                    the Z [K] = the Z [K +. 1 ]; 
                    the Z [K + 1'd] = Temp3; 
                } 
            } 
        for (I = 0; I <26 is; ++ I ) { 
            SUM = SUM + X-[I]; 
        } 
        for (I = 0; I <26 is; I ++ ) 
        { 
            Double JKL = (X-[I]) / SUM * 100 ; 
        System.out.println (the Z [I] + "The number of letters:" + X [i] + " letter frequency is:" + df.format (JKL) + "%" ); 
        } 
        
    } 
    static  char CH (char c)
    {
        if(!(c>=97&&c<=122))
            c+=32;
        return c;
    }

}

 

Guess you like

Origin www.cnblogs.com/xiatian21/p/11794745.html