1 package com.wenjian; 2 import java.util.Scanner; 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Set; 6 import java.io.*; 7 public class hali { 8 public static <type> void main (String[] args) throws IOException { 9 File file=new File("E:\Harry Potter and the Sorcerer's Stone.txt"); //��ȡ�ļ� 10 if(!file.exists()){ 11 System.out.println("文件打不开"); 12 return; 13 } 14 Scanner scanner=new Scanner(file); 15 BufferedReader buf = new BufferedReader(new FileReader(file)); 16 int []num=new int[100];//计数数组 17 char []zimu=new char[100];//字母表数组 18 char a='A';char b='a'; 19 for(int i=1;i<=52;i++) 20 { 21 if(i<=26) 22 zimu[i]=a++; 23 else 24 zimu[i]=b++; 25 } 26 //计数 27 String s=buf.readLine(); 28 while(s!=null) { 29 String[] lineWords=s.split(" "); 30 for(int i=0;i<lineWords.length;i++) { 31 for(int j=0;j<lineWords[i].length();j++) 32 { 33 if(lineWords[i].charAt(j)>='A'&&lineWords[i].charAt(j)<='Z') 34 num[lineWords[i].charAt(j)-'A'+1]++; 35 else if(lineWords[i].charAt(j)>='a'&&lineWords[i].charAt(j)<='z') 36 num[lineWords[i].charAt(j)-'a'+1+24]++; 37 } 38 } 39 s=buf.readLine(); 40 } 41 //求总次数 42 int sum=0; 43 for(int i=1;i<=52;i++) 44 { 45 sum+=num[i]; 46 } 47 //排序 48 for(int i=1;i<=52;i++) 49 { 50 for(int j=i+1;j<=52;j++) 51 { 52 if(num[i]<num[j]) 53 { 54 int t=num[i]; 55 num[i]=num[j]; 56 num[j]=t; 57 58 char p=zimu[i]; 59 zimu[i]=zimu[j]; 60 zimu[j]=p; 61 } 62 } 63 } 64 System.out.println(sum); 65 for(int i=1;i<=52;i++) 66 { 67 double ans=num[i]*1.0/sum*100; 68 System.out.println(zimu[i]+":"+String.format("%.2f", ans)+"%"); 69 } 70 } 71 }
1 package com.wenjian; 2 import java.util.Scanner; 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Set; 6 import java.io.*; 7 public class hali { 8 public static <type> void main (String[] args) throws IOException { 9 File file=new File("E:\Harry Potter and the Sorcerer's Stone.txt"); //��ȡ�ļ� 10 if(!file.exists()){ 11 System.out.println("文件打不开"); 12 return; 13 } 14 Scanner scanner=new Scanner(file); 15 BufferedReader buf = new BufferedReader(new FileReader(file)); 16 int []num=new int[100];//计数数组 17 char []zimu=new char[100];//字母表数组 18 char a='A';char b='a'; 19 for(int i=1;i<=52;i++) 20 { 21 if(i<=26) 22 zimu[i]=a++; 23 else 24 zimu[i]=b++; 25 } 26 //计数 27 String s=buf.readLine(); 28 while(s!=null) { 29 String[] lineWords=s.split(" "); 30 for(int i=0;i<lineWords.length;i++) { 31 for(int j=0;j<lineWords[i].length();j++) 32 { 33 if(lineWords[i].charAt(j)>='A'&&lineWords[i].charAt(j)<='Z') 34 num[lineWords[i].charAt(j)-'A'+1]++; 35 else if(lineWords[i].charAt(j)>='a'&&lineWords[i].charAt(j)<='z') 36 num[lineWords[i].charAt(j)-'a'+1+24]++; 37 } 38 } 39 s=buf.readLine(); 40 } 41 //求总次数 42 int sum=0; 43 for(int i=1;i<=52;i++) 44 { 45 sum+=num[i]; 46 } 47 //排序 48 for(int i=1;i<=52;i++) 49 { 50 for(int j=i+1;j<=52;j++) 51 { 52 if(num[i]<num[j]) 53 { 54 int t=num[i]; 55 num[i]=num[j]; 56 num[j]=t; 57 58 char p=zimu[i]; 59 zimu[i]=zimu[j]; 60 zimu[j]=p; 61 } 62 } 63 } 64 System.out.println(sum); 65 for(int i=1;i<=52;i++) 66 { 67 double ans=num[i]*1.0/sum*100; 68 System.out.println(zimu[i]+":"+String.format("%.2f", ans)+"%"); 69 } 70 } 71 }