zoukankan      html  css  js  c++  java
  • 设计统计英文字母出现频率的感想

        本次实验给我最大的感想就是,当看到这道题的时候一头雾水,不知道该如何去写,但是慢慢的静下心来仔细捋一捋思路,也不是很难。

        首先是写导入文件的代码,一开始并不太会,就上网搜了搜文件导入的方法,看了大约30分钟也了解了大概,然后就照猫画虎的去自己写写,写出来之后还挺高兴的。代码是

    File file=new File("D:\eclipse\tongji\src\English.txt");
    @SuppressWarnings("resource")
    FileReader reader=new FileReader(file);

    @SuppressWarnings("resource")
    BufferedReader br1=new BufferedReader(new FileReader("D:\eclipse\tongji\src\English.txt"));

       接下来就是写把记事本里面的单词在代码中怎么去找出现了多少次,第一步是定义了俩个变量,一个是不同单词的个数,还有一个是单词的总数。String[] a=txt.split("[^a-zA-Z]+"); //利用正则表达式将字符串划分为单词字符串数组利用这个来表示记事本里面的单词。

      总结:总体来说这个代码让我学会了文件的导入,这是最大的收获,虽然最终结果不怎么样,能运行但其中还是有差错的。

    代码如下:

    package tongji;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    public class zimu {
    public static void main(String[] args) throws Exception
    {
    File file=new File("D:\eclipse\tongji\src\English.txt");
    @SuppressWarnings("resource")
    FileReader reader=new FileReader(file);
    int len=(int)file.length();
    char[] chars=new char[len];
    reader.read(chars);
    String txt=String.valueOf(chars);
    String[] a=txt.split("[^a-zA-Z]+"); //利用正则表达式将字符串划分为单词字符串数组
    int n=a.length;
    int nind=0,wind=0;
    Object[][] b=new Object[n][2];
    for(;wind<n;wind++){
    int k=0; //用k标记单词是否已经出现,单词已经出现,在已存数组中匹配,若匹配则相应单词数目加1
    for(int i=0;i<nind;i++){
    if(((String) b[i][0]).equalsIgnoreCase(a[wind])){
    b[i][1]=(int)b[i][1]+1;
    k=1;
    break;
    }
    }
    //单词未出现则在记录数组末尾记录此单词
    if(k==0){
    b[nind][0]=a[wind];
    b[nind][1]=1;
    nind++;
    }
    }
    @SuppressWarnings("resource")
    BufferedReader br1=new BufferedReader(new FileReader("D:\eclipse\tongji\src\English.txt"));
    String str=br1.readLine();
    String[] arg=str.split("[^a-zA-Z]+"); //利用正则表达式将字符串划分为单词字符串数组
    int m=arg.length;
    //判断文章中词语是否为虚词,如果为虚词则在比较频率时不计较在内
    for(int i=0;i<nind;i++){
    for(int j=0;j<m;j++ ){
    if(((String) b[i][0]).equalsIgnoreCase(arg[j])){
    b[i][1]=0;
    }
    }
    }
    for(int i=0;i<10;i++){
    int max=0;
    for(int j=0;j<nind;j++){
    if((int)b[j][1]>(int)b[max][1]){
    max=j;
    }
    }
    System.out.println(b[max][0]+"出现次数为:"+b[max][1]);
    b[max][1]=0;
    }
    }
    }

  • 相关阅读:
    ubuntu 安装QT 5.0出现错误:Failed to load platform plugin "xcb".
    Ubuntu手动编译GCC
    C++面试题集锦(一)
    C++排序系列(一) 插入排序之折半插入排序
    关于内存对齐的面试题
    C++中的static_cast, dynamic_cast和reinterpret_cast
    C++排序系列(二) 交换排序之简单排序
    Cannot open include file: 'iphlpapi.h': No such file or directory(最终解决方法)
    C++排序系列(一) 插入排序之直接插入排序
    ubuntu aptget update时出现W: GPG 错误
  • 原文地址:https://www.cnblogs.com/lishengming00/p/9775459.html
Copyright © 2011-2022 走看看