zoukankan      html  css  js  c++  java
  • 统计字符出现频率(java)

    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)!='
    '&&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)!='
    '&&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();
    		}
    		
    	}
    
    }
    

     

  • 相关阅读:
    Centos7安装Python3的方法
    word2vec原理(二) 基于Hierarchical Softmax的模型
    word2vec原理(一) CBOW与Skip-Gram模型基础
    爬虫的危害有多大
    python线程池实现
    进程和线程、协程的区别
    程序的编译与解释之间的区别
    【python3】如何建立爬虫代理ip池
    可能是史上最全的机器学习和Python(包括数学)速查表
    python 元类
  • 原文地址:https://www.cnblogs.com/w669399221/p/12152130.html
Copyright © 2011-2022 走看看