单词统计

题目:

0步:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。

字母频率 = 这个字母出现的次数 / (所有A-Za-z字母出现的总数)

如果两个字母出现的频率一样,那么就按照字典序排列。  如果 S T 出现频率都是 10.21%, 那么, S 要排在T 的前面。

1步:输出单个文件中的前 N 个最常出现的英语单词。

单词:以英文字母开头,由英文字母和字母数字符号组成的字符串视为一个单词。单词以分隔符分割且不区分大小写。在输出时,所有单词都用小写字符表示。

第2步:输出单个文件中的前 N 个最常出现的英语单词。

分割符:空格,非字母数字符号 例:good123是一个单词,123good不是一个单词。goodGoodGOOD是同一个单词。

思路:按步骤实现即可。

public static void zimu(String []p) {
        int []piao=new int[27];
        for(int i=0;i<p.length;i++) {
            piao[0]++;
            if(p[i].equals("a"))  piao[1]=piao[1]+1;
            if(p[i].equals("b"))  piao[2]=piao[2]+1;
            if(p[i].equals("c"))  piao[3]=piao[3]+1;
            if(p[i].equals("d"))  piao[4]=piao[4]+1;
            if(p[i].equals("e"))  piao[5]=piao[5]+1;
            if(p[i].equals("f"))  piao[6]=piao[6]+1;
            if(p[i].equals("g"))  piao[7]=piao[7]+1;
            if(p[i].equals("h"))  piao[8]=piao[8]+1;
            if(p[i].equals("i"))  piao[9]=piao[9]+1;
            if(p[i].equals("j"))  piao[10]=piao[10]+1;
            if(p[i].equals("k"))  piao[11]=piao[11]+1;
            if(p[i].equals("l"))  piao[12]=piao[12]+1;
            if(p[i].equals("m"))  piao[13]=piao[13]+1;
            if(p[i].equals("n"))  piao[14]=piao[14]+1;
            if(p[i].equals("o"))  piao[15]=piao[15]+1;
            if(p[i].equals("p"))  piao[16]=piao[16]+1;
            if(p[i].equals("q"))  piao[17]=piao[17]+1;
            if(p[i].equals("r"))  piao[18]=piao[18]+1;
            if(p[i].equals("s"))  piao[19]=piao[19]+1;
            if(p[i].equals("t"))  piao[20]=piao[20]+1;
            if(p[i].equals("u"))  piao[21]=piao[21]+1;
            if(p[i].equals("v"))  piao[22]=piao[22]+1;
            if(p[i].equals("w"))  piao[23]=piao[23]+1;
            if(p[i].equals("x"))  piao[24]=piao[24]+1;
            if(p[i].equals("y"))  piao[25]=piao[25]+1;
            if(p[i].equals("z"))  piao[26]=piao[26]+1;
        }
        System.out.print("总字母:");
        for(int y=0,z=97;y<piao.length;y++,z++) {
            
            System.out.println(piao[y]);
            if(z>122) break;
            System.out.println((char)z+":");
        }
    }
    public static void danci1(String []p) {
        String []danci=new String[(p.length/3)];
        int []px=new int[(p.length/3)];
        int i,j;
        System.out.println();
        for(i=0,j=0;i<p.length;i++) {
            //if() {
                danci[j]=danci[j]+p[i];                
            //}else {
                j++;
            }
        }
        /*for(i=0;i<danci.length;i++) {
            System.out.println(danci[i]);
        }*/
        
    //}
    public static void main(String[] args) {
        String pi="";
        try{
            FileReader reader = new FileReader("E:\\java\\piao\\src\\xi.txt");
            BufferedReader br = new BufferedReader(reader);
            String line;
            
            //网友推荐更加简洁的写法
            while ((line = br.readLine()) != null) {
                pi=pi+line;
            }
        }catch(IOException e) {
            
        }
        
        pi=pi.toLowerCase();
        char []pc=pi.toCharArray();

        String []p=new String[pc.length];
        for(int x=0;x<p.length;x++) {
            p[x]=String.valueOf(pc[x]);
        }
        int pd=0;
        Scanner sc=new Scanner(System.in);
        System.out.println("0.查询字母");
        System.out.println("1.查询单词");
        System.out.println("2.查询单词");
        System.out.println("输入:");
        if (sc.hasNextInt()) {
           pd = sc.nextInt();
           switch(pd) {
           case 0:    zimu(p);break;
           case 1:danci1(p);break;
           case 2:
           }
       
        }
        
        
    }

 

 

 

 

posted @ 2019-05-04 21:40  至尊小虾米  阅读(142)  评论(0)    收藏  举报