天天看點

課堂測試2

11.19

輸出單個檔案中的前N個最長出現的英文字母:

代碼部分:.

package lianxi;
import java.io.*;
public class yingwen {
  public static void main(String[] args) throws IOException
  {
    int a[]=new int[52];
    int i,j=0,k;
    int sum=0;
    FileReader fr = null;
    try
    {
      //建立字元輸入流
      fr = new FileReader("D:\\a.txt");
      //建立一個長度為32的“竹筒”
      char[] cbuf = new char[32];
      //用于儲存實際讀取的字元數
      int hasRead = 0;
      //使用循環來重複“取水”過程
      while ((hasRead = fr.read(cbuf)) > 0 )
      {
        //取出“竹筒”中水滴(位元組),将字元數組轉換成字元串輸入!
        for(i=0;i<32;i++) {
          if((cbuf[i])==65)
            a[0]++;
          if((cbuf[i])==66)
            a[1]++;
          if((cbuf[i])==67)
            a[2]++;
          if((cbuf[i])==68)
            a[3]++;
          if((cbuf[i])==69)
            a[4]++;
          if((cbuf[i])==70)
            a[5]++;
          if((cbuf[i])==71)
            a[6]++;
          if((cbuf[i])==72)
            a[7]++;
          if((cbuf[i])==73)
            a[8]++;
          if((cbuf[i])==74)
            a[9]++;
          if((cbuf[i])==75)
            a[10]++;
          if((cbuf[i])==76)
            a[11]++;
          if((cbuf[i])==77)
            a[12]++;
          if((cbuf[i])==78)
            a[13]++;
          if((cbuf[i])==79)
            a[14]++;
          if((cbuf[i])==80)
            a[15]++;
          if((cbuf[i])==81)
            a[16]++;
          if((cbuf[i])==82)
            a[17]++;
          if((cbuf[i])==83)
            a[18]++;
          if((cbuf[i])==84)
            a[19]++;
          if((cbuf[i])==85)
            a[20]++;
          if((cbuf[i])==86)
            a[21]++;
          if((cbuf[i])==87)
            a[22]++;
          if((cbuf[i])==88)
            a[23]++;
          if((cbuf[i])==89)
            a[24]++;
          if((cbuf[i])==90)
            a[25]++;
          if((cbuf[i])==97)
            a[26]++;
          if((cbuf[i])==98)
            a[27]++;
          if((cbuf[i])==99)
            a[28]++;
          if((cbuf[i])==100)
            a[29]++;
          if((cbuf[i])==101)
            a[30]++;
          if((cbuf[i])==102)
            a[31]++;
          if((cbuf[i])==103)
            a[32]++;
          if((cbuf[i])==104)
            a[33]++;
          if((cbuf[i])==105)
            a[34]++;
          if((cbuf[i])==106)
            a[35]++;
          if((cbuf[i])==107)
            a[36]++;
          if((cbuf[i])==108)
            a[37]++;
          if((cbuf[i])==109)
            a[38]++;
          if((cbuf[i])==110)
            a[39]++;
          if((cbuf[i])==111)
            a[40]++;
          if((cbuf[i])==112)
            a[41]++;
          if((cbuf[i])==113)
            a[42]++;
          if((cbuf[i])==114)
            a[43]++;
          if((cbuf[i])==115)
            a[44]++;
          if((cbuf[i])==116)
            a[45]++;
          if((cbuf[i])==117)
            a[46]++;
          if((cbuf[i])==118)
            a[47]++;
          if((cbuf[i])==119)
            a[48]++;
          if((cbuf[i])==120)
            a[49]++;
          if((cbuf[i])==121)
            a[50]++;
          if((cbuf[i])==122)
            a[51]++;
        }

      }
      for(k=0;k<52;k++)sum+=a[k];
      for(k=0,j=65;k<26;k++,j++)System.out.println((char)j+"   "+(a[k]/877049.0)*100+"%");
      for(k=26,j=97;k<52;k++,j++)System.out.println((char)j+"   "+(a[k]/877049.0)*100+"%");
      System.out.println(a[0]);
    }
    catch (IOException ioe)
    {
      ioe.printStackTrace();
    }
    finally
    {
      //使用finally塊來關閉檔案輸入流
      if (fr != null)
      {

        fr.close();
      }
    }
  } }      

運作結果:

課堂測試2