【作业】飘-字母统计

突发奇想 利用ASCII的值的连续性,直接对应数组0-25序号

 1 package piao;
 2 
 3 import java.io.FileReader;
 4 import java.util.Scanner;
 5 
 6 public class piao {
 7 
 8     public static void main(String[] args) 
 9     {
10         double []list=new double[26];
11         int []c=new int[26];
12         for(int k=0;k<26;k++)
13         {
14             list[k]=0;
15         }
16         for(int k=0;k<26;k++)
17         {
18             c[k]=k+65;
19         }
20         String line="";
21         int a=0;
22         int b=0;
23         int s=0;
24         try
25         {
26             FileReader fr=new FileReader("piao.txt");
27             Scanner in =new Scanner(fr);
28             while(in.hasNext())
29             {
30             line=in.nextLine();
31             //System.out.println(line);
32             for(int i=0;i<line.length();i++)
33             {
34                 a=line.charAt(i);
35                 
36                 if (a>=65&&a<=90)
37                 {
38                     b=a-65;
39                 }
40                 if(a>=97&&a<=122)
41                 {
42                     b=a-97;
43                 }
44                 //System.out.println(b);
45                 list[b]+=1;
46                 s++;
47             }
48             }
49             
50             for(int t=0;t<26;t++)
51             {
52                 list[t]=list[t]/s;
53                 
54                 //System.out.println(list[t]);
55             }
56             int t,k;
57             double d;
58             int e;
59             for(t=0;t<25;t++)
60             {
61                 for(k=0;k<25-t;k++)
62                 {
63                     if(list[k]<list[k+1])
64                     {
65                         d=list[k+1];
66                         list[k+1]=list[k];
67                         list[k]=d;
68                         
69                         e=c[k+1];
70                         c[k+1]=c[k];
71                         c[k]=e;
72                     }
73                 }
74             }
75             
76             for(t=0;t<26;t++)
77             {
78                 System.out.print((char)(c[t])+"  ");
79                 System.out.println(String.format("%.2f", list[t]*100)+"%");
80             }
81         }
82         catch(Exception e)
83         {
84             
85         }
86     }
87 
88 }

 

posted @ 2019-06-22 21:43  CCRNRT  阅读(186)  评论(0编辑  收藏  举报