统计字符出现频率(java)

Posted 海南之风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计字符出现频率(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)!=\'\\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();
		}
		
	}

}

 

以上是关于统计字符出现频率(java)的主要内容,如果未能解决你的问题,请参考以下文章

pandas:统计某一列字符串中特定单元出现的频率

Java实现的词频统计

201671010432词频统计软件项目报告

pandas:统计某一列字符串中各个word出现的频率

统计字符串中字符的出现的频率,最好C++语言。

python求每个 数字出现的频率 我有一个list: 2 2 5 7 4 2 我想要gener