統計英文文章單詞出現的頻率

package 統計英文字母出現頻率;
import java.io.*;
import java.io.File.*;
import java.util.Scanner;
public class Collect {
  public static void readFileByChars(String fileName) {
         File file = new File(fileName);
         Reader reader = null;
         try {
          char [] value = new char[20];
          int [] amount = new int[20];
          for(int i = 0; i< 20;i++)
          { amount[i] = 0;}
          
             reader = new InputStreamReader(new FileInputStream(file));
             for(int i = 0;i < 20 ;i++)               
               {value[i] = (char) reader.read();}
            
             for(int j = 0 ;j < 20 ;j ++)
             {
              for(int k = j+1 ; k < 20 ; k++) {
               if(value[k]==value[j]){
                amount[j]++;
               }
               else if(value[j]==value[j+1]) {
                j++;break;
               }
               else break;
              }
             }
             int temp=0;
             for(int i = 0;i < 20;i++)
             {
              for(int j = i+1 ; j < 20 ; j ++) {
               if(amount[j]>amount[i]) {
                temp = j;
               }
               else temp = i;
              }
             }
      
             System.out.println("出現最屢次數的字母:"+value[temp]+"其出現的次數:"+amount[temp]);  
             reader.close(); 
         } catch (Exception e) {
             e.printStackTrace();//拋異常
         }
        
  }
  public static void main(String args[]) {
   readFileByChars("file.txt");
  }
 
 
存在的很大問題,對於讀寫文件,查了半天資料也剛剛瞭解,在網上找到了一段讀取文件的代碼,勉強看得懂。能夠實現一個個字符保存到value數組中,可是對於重複的字符沒有篩選功能,因此只可以實現統計單詞出現的次數。可是對於重複的字符沒有篩選功能,字符數組建多大也一直迷糊。至於出現的頻率,我用amoun數組實現,可是存在一點小小的問題。對於數組的比較原本是一個很簡單的循環問題,可是在這裏不知道爲何實現的很慢,並且思惟比較混亂。在這個程序的編寫中,還向以往那樣,沒有模塊化,沒有用類來實現,仍是用了一抹都在主函數裏邊實現,對於for循環語句用的次數太多,致使代碼太複雜,運行很複雜。對於文件的操做這一塊的內容,課後還要狠狠的下功夫,真是書到用時方恨少啊,代碼到用時才發現本身什麼都不會
相關文章
相關標籤/搜索