课堂测试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();
}
}
}

}

运行结果:

 最后成功的在控制台输出前N个最长出现的字母

原文地址:https://www.cnblogs.com/092e/p/14148590.html