1 package 字母频率统计; 2 import java.io.*; 3 public class Inputfile { 4 public static void main(String args[]) { 5 try { 6 char shu[] = new char[1000]; 7 char zimu[] = new char[52]; 8 int j=0; 9 int count[]=new int[52]; 10 String pathname="D:\a.txt"; 11 File filename=new File(pathname); 12 InputStreamReader reader=new InputStreamReader(new FileInputStream(filename)); 13 BufferedReader br=new BufferedReader(reader); 14 String line[]=new String[100];; 15 for(int i=0;i<line.length;i++){ 16 line[i]=br.readLine(); 17 } 18 br.close(); 19 int k=0; 20 while(line[k]!=null) { 21 for(int i=0;i<line[k].length();i++) { 22 shu[j]=line[k].charAt(i); 23 j++; 24 } 25 k++; 26 } 27 for(int i=0;i<shu.length;i++) { 28 switch(shu[i]) { 29 case 'a':zimu[0]='a';count[0]++;break; 30 case 'b':zimu[1]='b';count[1]++;break; 31 case 'c':zimu[2]='c';count[2]++;break; 32 case 'd':zimu[3]='d';count[3]++;break; 33 case 'e':zimu[4]='e';count[4]++;break; 34 case 'f':zimu[5]='f';count[5]++;break; 35 case 'g':zimu[6]='g';count[6]++;break; 36 case 'h':zimu[7]='h';count[7]++;break; 37 case 'i':zimu[8]='i';count[8]++;break; 38 case 'j':zimu[9]='j';count[9]++;break; 39 case 'k':zimu[10]='k';count[10]++;break; 40 case 'l':zimu[11]='l';count[11]++;break; 41 case 'm':zimu[12]='m';count[12]++;break; 42 case 'n':zimu[13]='n';count[13]++;break; 43 case 'o':zimu[14]='o';count[14]++;break; 44 case 'p':zimu[15]='p';count[15]++;break; 45 case 'q':zimu[16]='q';count[16]++;break; 46 case 'r':zimu[17]='r';count[17]++;break; 47 case 's':zimu[18]='s';count[18]++;break; 48 case 't':zimu[19]='t';count[19]++;break; 49 case 'u':zimu[20]='u';count[20]++;break; 50 case 'v':zimu[21]='v';count[21]++;break; 51 case 'w':zimu[22]='w';count[22]++;break; 52 case 'x':zimu[23]='x';count[23]++;break; 53 case 'y':zimu[24]='y';count[24]++;break; 54 case 'z':zimu[25]='z';count[25]++;break; 55 case 'A':zimu[26]='A';count[26]++;break; 56 case 'B':zimu[27]='B';count[27]++;break; 57 case 'C':zimu[28]='C';count[28]++;break; 58 case 'D':zimu[29]='D';count[29]++;break; 59 case 'E':zimu[30]='E';count[30]++;break; 60 case 'F':zimu[31]='F';count[31]++;break; 61 case 'G':zimu[32]='G';count[32]++;break; 62 case 'H':zimu[33]='H';count[33]++;break; 63 case 'I':zimu[34]='I';count[34]++;break; 64 case 'J':zimu[35]='G';count[35]++;break; 65 case 'K':zimu[36]='K';count[36]++;break; 66 case 'L':zimu[37]='L';count[37]++;break; 67 case 'M':zimu[38]='M';count[38]++;break; 68 case 'N':zimu[39]='N';count[39]++;break; 69 case 'O':zimu[40]='O';count[40]++;break; 70 case 'P':zimu[41]='P';count[41]++;break; 71 case 'Q':zimu[42]='Q';count[42]++;break; 72 case 'R':zimu[43]='R';count[43]++;break; 73 case 'S':zimu[44]='S';count[44]++;break; 74 case 'T':zimu[45]='T';count[45]++;break; 75 case 'U':zimu[46]='U';count[46]++;break; 76 case 'V':zimu[47]='V';count[47]++;break; 77 case 'W':zimu[48]='W';count[48]++;break; 78 case 'X':zimu[49]='X';count[49]++;break; 79 case 'Y':zimu[50]='Y';count[50]++;break; 80 case 'Z':zimu[51]='Z';count[51]++; 81 } 82 } 83 int ci=0; 84 int sum=0; 85 System.out.println("短文中各字母出现情况统计如下:"); 86 for(int i=0;i<52;i++) 87 { 88 if(count[i]!=0) { 89 ci++; 90 sum+=count[i]; 91 System.out.println(ci+".字母"+zimu[i]+"的出现次数是:"+count[i]); 92 } 93 } 94 System.out.println("字母共计:"+sum+"个"); 95 }catch (Exception e) { 96 e.printStackTrace(); 97 } 98 } 99 100 }
测试文档:
运行截图:
构成思路:
一,利用输入流从文本文档读入字符串;
二,利用方法charAT(),将字符串转换为字符数组;
三,利用for循环和switch语句统计字母次数
四,输出结果。