统计英文文章单词出现的频率

it2022-05-09  29

package 统计英文字母出现频率; import java.io.*; import java.io.File.*; import java.util.Scanner; public class Collect {   public static void readFileByChars(String fileName) {          File file = new File(fileName);          Reader reader = null;          try {           char [] value = new char[20];           int [] amount = new int[20];           for(int i = 0; i< 20;i++)           { amount[i] = 0;}                         reader = new InputStreamReader(new FileInputStream(file));              for(int i = 0;i < 20 ;i++)                               {value[i] = (char) reader.read();}                           for(int j = 0 ;j < 20 ;j ++)              {               for(int k = j+1 ; k < 20 ; k++) {                if(value[k]==value[j]){                 amount[j]++;                }                else if(value[j]==value[j+1]) {                 j++;break;                }                else break;               }              }              int temp=0;              for(int i = 0;i < 20;i++)              {               for(int j = i+1 ; j < 20 ; j ++) {                if(amount[j]>amount[i]) {                 temp = j;                }                else temp = i;               }              }                     System.out.println("出现最多次数的字母:"+value[temp]+"其出现的次数:"+amount[temp]);                reader.close();           } catch (Exception e) {              e.printStackTrace();//抛异常          }            }   public static void main(String args[]) {    readFileByChars("file.txt");   }     存在的很大问题,对于读写文件,查了半天资料也刚刚了解,在网上找到了一段读取文件的代码,勉强看得懂。可以实现一个个字符保存到value数组中,但是对于重复的字符没有筛选功能,所以只能够实现统计单词出现的次数。但是对于重复的字符没有筛选功能,字符数组建多大也一直迷糊。至于出现的频率,我用amoun数组实现,但是存在一点小小的问题。对于数组的比较本来是一个很简单的循环问题,但是在这里不知道为什么实现的很慢,而且思维比较混乱。在这个程序的编写中,还向以往那样,没有模块化,没有用类来实现,还是用了一抹都在主函数里边实现,对于for循环语句用的次数太多,导致代码太复杂,运行很复杂。对于文件的操作这一块的内容,课后还要狠狠的下功夫,真是书到用时方恨少啊,代码到用时才发现自己什么都不会

转载于:https://www.cnblogs.com/zjl-0217/p/9775013.html

相关资源:JS查找英文文章中出现频率最高的单词

最新回复(0)