第一次 实训

1.码云地址:https://gitee.com/bhma/first_training/tree/master

小组成员:

16012115 白惠民(领航员)

16012122 齐洪飞(驾驶员)

2.我们编程时候的图片:

3.我们选择的是第二道题:

2.词频统计(引自东北师范大学杨贵福老师)

老五在寝室吹牛他熟读过《鲁滨逊漂流记》,在女生面前吹牛热爱《呼啸山庄》《简爱》和《飘》,在你面前说通读了《战争与和平》。但是,他的四级至今没过。你们几个私下商量,这几本大作的单词量怎么可能低于四级,大家听说你学习《构建之法》,一致推举你写个程序名字叫wf,统计英文作品的单词量并给出每个单词出现的次数,准备用于打脸老五。

希望实现以下效果:

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

解题思路:最开始看到的时候觉得这道题会好做一些,我们想着要把它分解一下,有遍历文件的,有查看那个单词重复的,后来又想着要怎么读取出来,有了思路就要一步一步去实现,但是我俩的能力对这道题还是有点差距,又问的其他同学, 才解出来。

程序代码:

mport 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 wf { 
    public static void main(String[] args) throws Exception {   
        BufferedReader br = new BufferedReader(new FileReader("F:\\16012115\\daima.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){   
                    lists.add(word); 
                
            
        }  
        br.close(); 
        Map<String, Integer> wordsCount = new TreeMap<String,Integer>();
        for (String li : lists) { 
            if(wordsCount.get(li) != null){ 
                wordsCount.put(li,wordsCount.get(li) + 1); 
            }else
                wordsCount.put(li,1); 
            
        
        SortMap(wordsCount); 
    
    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()+"个");

 

 

.本次结果运行图

小结:学习的时间总是过得飞快的,经过我和惠民两天的努力终于完成了这次实训,在过程中他帮助我很多,解决了我很多问题,我想人多力量大就是这个道理,在这次实训中我俩能一起进步一起成长我想这是最重要的,当然也感谢郑蕊老师的谆谆教导以及不辞辛苦的解答,我想下次实训我俩一定可以做的更好。

汉堡包:白同学是一个热心肠爱帮助别人的人,在这次学习中他帮助了我很多,但是他也有一些缺点,希望他下次能改进。

 

posted @ 2018-12-13 15:22  齐鸿飞  阅读(240)  评论(0)    收藏  举报