11.18
要求:
输入某个英文文本文件中26个字母出现的频率
代码部分:
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();
}
}
}
}
运行结果分析:
最后成功的吧文件里的英文字母的频率算了出来并成功打印到控制台。