package three; /*本程序目的是统计文件里的字符出现的频率。*/ import java.io.*; class word{ int num; String word; public word() { num=0; word=""; } } public class treat { public static void main(String args[]) { String s; String arr[]=new String[500000]; int temp[]=new int[500000]; int num1[]=new int[500000];//1 int num2[]=new int[500000]; String deg[]=new String[500000]; int char1=0,sum=0; int num=0;//总数 int asp[]=new int[100]; char zimu[]=new char[100]; try { BufferedReader br=new BufferedReader(new FileReader("F:/新建文件夹/1/harry.txt")); try { arr[char1]=new String(); while((s=br.readLine())!=null) { for(int i=0;i<s.length();i++) { if(s.charAt(i)>=65&&s.charAt(i)<=90) { num++; asp[(int)s.charAt(i)-65]++; } if(s.charAt(i)>=97&&s.charAt(i)<=122) { num++; asp[(int)s.charAt(i)-97+26]++; } } for(int i=0;i<s.length();i++) { if(s.charAt(i)==‘ ‘&&s.charAt(i+1)==‘ ‘) continue; if(s.charAt(i)!=‘ ‘&&s.charAt(i)!=‘\n‘&&s.charAt(i)!=‘,‘&&s.charAt(i)!=‘.‘&&s.charAt(i)!=‘!‘&&s.charAt(i)!=‘?‘&&s.charAt(i)!=‘"‘) { arr[char1]+=s.charAt(i); continue; } if(s.charAt(i)==‘ ‘&&s.charAt(i+1)!=‘ ‘&&s.charAt(i+1)!=‘\n‘&&s.charAt(i+1)!=‘,‘&&s.charAt(i+1)!=‘.‘&&s.charAt(i+1)!=‘!‘&&s.charAt(i+1)!=‘?‘&&s.charAt(i+1)!=‘"‘) { continue; } else { char1++; arr[char1]=new String(); } } } for(int i=0;i<52;i++) { if(i<=26) zimu[i]=(char)(65+i); if(i>=26) { zimu[i]=(char)(97+i-26); } } //排序 for(int i=0;i<52;i++) { for(int j=i+1;j<52;j++) if(asp[i]<asp[j]) { int ps=0; ps=asp[i]; asp[i]=asp[j]; asp[j]=ps; char pr=‘x‘; pr=zimu[i]; zimu[i]=zimu[j]; zimu[j]=pr; } } for(int i=0;i<52;i++) { System.out.println(zimu[i]+"频率:"+String.format("%.2f", (double)asp[i]/num*100)+"%"); } /*for(int i=0;i<char1;i++) { System.out.println(arr[i]); } for(int i=0;i<char1;i++) { if(num1[i]!=1) { temp[i]=1; for(int j=i+1;j<char1;j++) { if(num1[j]!=1) { if(arr[i].equals(arr[j])) { num1[j]=1; temp[i]+=1; } } } } } for(int i=0;i<char1;i++) { if(num1[i]==1) continue; else { deg[sum]=new String(arr[i]); num2[sum]=temp[i]; sum++; } }*/ /*for(int i=0;i<char1;i++) { System.out.println(num1[i]+" "+temp[i]+" "+deg[i]+" "+num2[i]); } /*for(int i=0;i<sum;i++) { for(int j=i+1;j<sum;j++) { if(num2[i]<num2[j]) { int pw=0; pw=num2[i]; num2[i]=num2[j]; num2[j]=pw; String as=""; as=deg[i]; deg[i]=deg[j]; deg[j]=as; } } }*/ /*for(int i=0;i<sum;i++) { System.out.println("vocabulary: "+deg[i]+"出现次数:"+num2[i]); }*/ } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
原文地址:https://www.cnblogs.com/w669399221/p/12152130.html
时间: 2024-10-16 00:05:26