zoukankan      html  css  js  c++  java
  • 统计字母出现频率及其单词个数

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

    从文件中读取:

    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));//否则单词第一次出现,添加到映射中
                }
            }

    程序结果:

    上课感受:

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

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

  • 相关阅读:
    怎样整理房间
    拙劣的外部变量
    鸡窝里飞出伪凤凰
    flag标志什么?哦,它标志代码馊了——(三)
    边界测试——让BUG现形
    static的滥用与变态的阉割
    无知乱吃药
    flag标志什么?哦,它标志代码馊了——(一)
    flag标志什么?哦,它标志代码馊了——(二)
    半身不遂和粗中有细
  • 原文地址:https://www.cnblogs.com/zhoulonghai/p/10821520.html
Copyright © 2011-2022 走看看