第一次实训__结对编程

                                                                  第一次实训-----词频统计


结对成员:14011022    李    爽

                  16012021   沈梦然

码云仓库地址:http://gitee.com/smr_777/Wordstatistics/tree/master


 

 

过程图片


 

 解题思路:

要求:

  • 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符。
  • 2.统计英文单词在本文件的出现次数
  • 3.将统计结果排序
  • 4.显示排序结果

实现方法:

            我们通过查阅书籍,寻求同学帮助,浏览网页等方法找到了解题思路,

    先使用FileReader、BufferedReader读取文件,其次采用了字符分割;

    还使用hashmap保存统计数据;并且自定义一个类用来实现按value排序;

    最后我们输出结果。尽管出现很多错误,通过我们不断修改,最终,我们

    得到了正确的结果。

代码:

package com.example.shea.goldenpoint2rd;
import java.io.BufferedReader;  
import java.io.FileReader;  
import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  
import java.util.Map;  
import java.util.Map.Entry;  
import java.util.TreeMap;    
// 实现从文件中读入英文文章,统计单词个数,并对于结果进行排序处理
public class Wordstatistics {  
  
    public static void main(String[] args) throws Exception {  
          
        BufferedReader br = new BufferedReader(new FileReader("F:\\hhh\\1.txt"));  //读取文件路径
        List<String> lists = new ArrayList<String>();  //存储过滤后单词的列表  
        String readLine = null;
        while((readLine = br.readLine()) != null){  
            String[] wordsArr1 = readLine.split("[^a-zA-Z]");  //过滤出只含有字母的  
            for (String word : wordsArr1) {  
                if(word.length() != 0){  //去除长度为0的行  
                    lists.add(word);  
                }  
            }  
        }  
          
        br.close();  
          
        Map<String, Integer> wordsCount = new TreeMap<String,Integer>();  //存储单词计数信息,key值为单词,value为单词数       
          
        //单词的词频统计  
        for (String li : lists) {  
            if(wordsCount.get(li) != null){  
                wordsCount.put(li,wordsCount.get(li) + 1);  
            }else{  
                wordsCount.put(li,1);  
            }  
  
        }  
          
        SortMap(wordsCount);    //按值进行排序  
      
    }  
      
    //按value的大小进行排序  
    public static void SortMap(Map<String,Integer> oldmap){  
          
        ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(oldmap.entrySet());  
          
        Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){  
            public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {  
                return o2.getValue() - o1.getValue();  //降序排列  
            }  
        });  
          
        for(int i = 0; i<list.size(); i++){  
            System.out.println(list.get(i).getKey()+ ": " +list.get(i).getValue());  
        }     
    }  
  
}

 


文本文档图片:

结果截图:


小结感受:

                 此次结对实训受益匪浅,对于这次的实训,不但学到了很多知识,还让我知道了合作的重要。并且从中感受到了多人学习的快乐。

         团队实训中不懂得就问我的小伙伴,她也耐心的替我解答。对于这种新颖的学习方式充满兴趣,所以更加有动力积极参与其中,但和我

         的伙伴相比,发现了自己诸多不足之处。基础知识掌握的也 不太牢。还需要多加巩固。今后的学习中,我会继续努力,深入实践,不断

         完善自我。


沈梦然一个 ----> "汉堡包":

 

                      经过这一次老师精心安排的结对合作,我对团队合作有了一定的认识。也知道了在我们在结对合作的时候,不能一昧的只做自己的事,而是要跟队友一起讨论,多听取队友的意见,同时在团队讨论的时候也多讲一下自己的观点。积极参与其中,

      由于我的编程能力学习不太好,所以在做任务的过程中遇到了重重困难,但是我们对完成任务有一颗坚决的心,一种良好的态度。经过结对合作,我看到了队友为我们项目所付出的巨大努力,她找了很多相关的资料供我参考,她那种认真,

     负责的态度,让我感到很感激,并且在她的引导下我们成功完成了这项实训任务。

                       从这次的结对合作中,队友的优点1.基础知识掌握的非常牢固;

                                                                               2.耐心,用心,不厌其烦的帮我解惑;

                                                                               3.有信心,并且善于观察,耐心排查错误,尽力做到完美。

      但是,金无足赤,人无完人,是人就有缺点,有不足。

      所以,我在此给我的可爱队友一些建议1.不要太过急躁;

                                                                     2.不要找那么多的资料,我看不完,找一些具有代表性的就好;

      总而言之,队友还是功不可没的,她的努力在完成项目上具有很大的比重,感谢队友所付出的努力,你辛苦了,谢谢我的队友。

 

 

 

 

 

 

 

 

posted @ 2018-12-11 15:42  李又又  阅读(198)  评论(0编辑  收藏  举报