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; } }