java 计算26个字母在一段文本中出现的频率(保留小数点后4位)
生活随笔
收集整理的這篇文章主要介紹了
java 计算26个字母在一段文本中出现的频率(保留小数点后4位)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public class FrequencyCalculator {public static void main(String[] args){//定義需要計算字母出現頻率的文本String text="some off#acebooksea3rl255 yinvestorssoldofftheirstockatthefirs" +"tchancetheygotbutceomarkzuckerbergishangingontohissharesforatleast" +"thenextyearzuckerbergsinterviewwilltakeplaceonseptembereleventhinsa" +"nfranciscothesocialnetworkhasnearlyabillionusersbutthecompanyhasstru" +"ggledtomaintainmomentumsinceitsipo";//定義26個字母String letter="abcdefghijklmnopqrstuvwxyz";calculate(text,letter);}public static void calculate(String text,String letter){//定義存儲各字母出現次數的數組int []counter=new int[26];//定義存儲各字母出現頻率的數組double []f4=new double[26];//定義字母總個數的計數器。排除標點符號,空格和數字。int total_counter=0;//將string類型轉化成char類型char[] text_tr=text.toCharArray();char[] letter_tr=letter.toCharArray();//計算各字母出現次數以及總字母數//外層循環,遍歷26個字母for(int i=0;i<26;i++){//內層循環,遍歷待計算文本for(int j=0;j<text_tr.length;j++){//字母每在文本中出現一次,字母計數器加一,總字母個數計數器加一if(text_tr[j]==letter_tr[i]){counter[i]++;total_counter++;}}}//計算各字母出現頻率,結果保留小數點后4位for(int i=0;i<26;i++){//將int類型轉換成double類型double counter_d=(double) counter[i];double total_d=(double) total_counter;//字母出現頻率=字母出現次數/總的字母數double fre=counter_d/total_d;//保留小數點后4位f4[i]=(double) (Math.round(fre*10000)/10000.0); //輸出結果System.out.println(letter_tr[i]+" frequency is "+f4[i]);}}
}
以上代碼運行結果如下圖:
總結
以上是生活随笔為你收集整理的java 计算26个字母在一段文本中出现的频率(保留小数点后4位)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux centOS 硬盘分区挂载
- 下一篇: 关于idea的git账号与电脑的git账