统计字母出现频率及其单词个数

 本周的实验要求在之前实现统计单词的基础之上(可以见之前博客的统计单词的那个实验),对其进行修改成所需要的格式,统计字母出现频率的功能,并按照一定的格式把最终结果的用特定的格式在文本中显示出来

从文件中读取:

BufferedReader buf=new BufferedReader(new FileReader("D:\\应用\\java_workplace\\word1\\piao.txt"));
    System.out.println("Read under this dir English.txt");
    StringBuffer sbuf=new StringBuffer();//缓冲字符串
    String line=null;
    while((line=buf.readLine())!=null){
        sbuf.append(line);//追加到缓冲字符串中
        }
    buf.close();//读取结束

将文中单词进行匹配,大写转换为小写:

Pattern expression=Pattern.compile("[a-zA-Z]+");
    String string1=sbuf.toString().toLowerCase();

统计单词:

while(matcher.find())
    {//是否匹配单词
        word=matcher.group();//得到一个单词
        n++;
        if(myTreeMap.containsKey(word))
        {//如果包含该键,单词出现过
            num=myTreeMap.get(word);//得到单词出现的次数
            Integer count=(Integer)num;//强制转化
            myTreeMap.put(word,new Integer(count.intValue()+1));
            }
        else
        {
            myTreeMap.put(word,new Integer(1));//否则单词第一次出现,添加到映射中
            }
        }

程序结果:

上课感受:

本次实验感觉并不是太难,以前也做过统计字母单词的实验,但是还是花费时间比较长,主要原因在于自己在改以前的代码,以前的代码也没怎么加注释,再次看的时候也没怎么看懂,然后改起来改的一塌糊涂,越做越麻烦。后来开始自己分块实现,重新做才慢慢的完成。

千万别改代码,可以借用一部分,但一定要知道怎么用,乱加代码的结果就是代码写的越来越乱。

posted @ 2019-05-04 18:26  zhoulonghai  阅读(750)  评论(0编辑  收藏  举报