• 单词统计


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

      不难看出,这个只要求字母出现的频率,那么我们在读取文件的时候是采取的一次性全部读取,然后用String类自带的方法,将整个字符串转化成每个字符组成的字符串数组,然后获取长度之后一次for循环,然后与26字母进行比对,然后获得数量,最后进行排序。

    for (int i = 0; i < shu.length; i++) {
    switch (shu[i]) {
    case 'a':
    zimu[0] = 'a';
    count[0]++;
    break;
    case 'b':
    zimu[1] = 'b';
    count[1]++;
    break;
    case 'c':
    zimu[2] = 'c';
    count[2]++;
    break;
    case 'd':
    zimu[3] = 'd';
    count[3]++;
    break;
    case 'e':
    zimu[4] = 'e';
    count[4]++;
    break;
    case 'f':
    zimu[5] = 'f';
    count[5]++;
    break;
    case 'g':
    zimu[6] = 'g';
    count[6]++;
    break;
    case 'h':
    zimu[7] = 'h';
    count[7]++;
    break;
    case 'i':
    zimu[8] = 'i';
    count[8]++;
    break;
    case 'j':
    zimu[9] = 'j';
    count[9]++;
    break;
    case 'k':
    zimu[10] = 'k';
    count[10]++;
    break;
    case 'l':
    zimu[11] = 'l';
    count[11]++;
    break;
    case 'm':
    zimu[12] = 'm';
    count[12]++;
    break;
    case 'n':
    zimu[13] = 'n';
    count[13]++;
    break;
    case 'o':
    zimu[14] = 'o';
    count[14]++;
    break;
    case 'p':
    zimu[15] = 'p';
    count[15]++;
    break;
    case 'q':
    zimu[16] = 'q';
    count[16]++;
    break;
    case 'r':
    zimu[17] = 'r';
    count[17]++;
    break;
    case 's':
    zimu[18] = 's';
    count[18]++;
    break;
    case 't':
    zimu[19] = 't';
    count[19]++;
    break;
    case 'u':
    zimu[20] = 'u';
    count[20]++;
    break;
    case 'v':
    zimu[21] = 'v';
    count[21]++;
    break;
    case 'w':
    zimu[22] = 'w';
    count[22]++;
    break;
    case 'x':
    zimu[23] = 'x';
    count[23]++;
    break;
    case 'y':
    zimu[24] = 'y';
    count[24]++;
    break;
    case 'z':
    zimu[25] = 'z';
    count[25]++;
    break;
    case 'A':
    zimu[26] = 'A';
    count[26]++;
    break;
    case 'B':
    zimu[27] = 'B';
    count[27]++;
    break;
    case 'C':
    zimu[28] = 'C';
    count[28]++;
    break;
    case 'D':
    zimu[29] = 'D';
    count[29]++;
    break;
    case 'E':
    zimu[30] = 'E';
    count[30]++;
    break;
    case 'F':
    zimu[31] = 'F';
    count[31]++;
    break;
    case 'G':
    zimu[32] = 'G';
    count[32]++;
    break;
    case 'H':
    zimu[33] = 'H';
    count[33]++;
    break;
    case 'I':
    zimu[34] = 'I';
    count[34]++;
    break;
    case 'J':
    zimu[35] = 'G';
    count[35]++;
    break;
    case 'K':
    zimu[36] = 'K';
    count[36]++;
    break;
    case 'L':
    zimu[37] = 'L';
    count[37]++;
    break;
    case 'M':
    zimu[38] = 'M';
    count[38]++;
    break;
    case 'N':
    zimu[39] = 'N';
    count[39]++;
    break;
    case 'O':
    zimu[40] = 'O';
    count[40]++;
    break;
    case 'P':
    zimu[41] = 'P';
    count[41]++;
    break;
    case 'Q':
    zimu[42] = 'Q';
    count[42]++;
    break;
    case 'R':
    zimu[43] = 'R';
    count[43]++;
    break;
    case 'S':
    zimu[44] = 'S';
    count[44]++;
    break;
    case 'T':
    zimu[45] = 'T';
    count[45]++;
    break;
    case 'U':
    zimu[46] = 'U';
    count[46]++;
    break;
    case 'V':
    zimu[47] = 'V';
    count[47]++;
    break;
    case 'W':
    zimu[48] = 'W';
    count[48]++;
    break;
    case 'X':
    zimu[49] = 'X';
    count[49]++;
    break;
    case 'Y':
    zimu[50] = 'Y';
    count[50]++;
    break;
    case 'Z':
    zimu[51] = 'Z';
    count[51]++;
    }
    }
    int ci = 0;
    int sum = 0;
    System.out.println("短文中各字母出现情况统计如下:");
    for (int i = 0; i < 26; i++) {
    count[i] += count[i + 26];
    if (count[i] != 0) {
    ci++;
    sum += count[i];
    System.out.println(ci + ".字母" + zimu[i] + "的出现次数是:" + count[i]);
    }
    }

    for (int i = 0; i < 26; i++) {
    System.out.println(zimu[i] + "出现的百分比为:" + df.format(count[i] * 1.0 / sum));
    }
    System.out.println("字母共计:" + sum + "个");

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

      作用:一个用于统计文本文件中的英语单词出现频率。

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

      在单词中,我想到的方法则是将上面的方法进行的了一点变化,第0步是将字符分隔成为String数组,那在第一步,就变成了把字符变成了字符串,但是之前我们需要的是将一些特别符号转换成成为一个符号,然后再对这个符号进行分割,这样就可以获得单词。

     

    //先使用replace方法,替换特殊符号
    //然后再使用map得到个数
    Map<String,Integer> map=new HashMap<String,Integer>();
    for(String str : temp){
    if(map.containsKey(str)){
    map.put(str, map.get(str) + 1);
    }else{
    map.put(str, 1);
    }
    }

  • 相关阅读:
    推荐网址:Response.WriteFile Cannot Download a Large File
    为什么是 My?
    Fox开发杂谈
    DCOM配置为匿名访问
    连接到运行 Windows 98 的计算机
    OO面向对象以后是什么
    Com+的未来是什么?
    fox 表单和类库的加密及修复
    来自 COM 经验的八个教训
    VFP的加密问题
  • 原文地址:https://www.cnblogs.com/lx06/p/14883996.html
Copyright © 2020-2023  润新知