第一次实训
Posted bhma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次实训相关的知识,希望对你有一定的参考价值。
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()+"个"); } } }
上面的代码中我们对结果进行了从大到小的排列顺序,我们对单词进行了统计。
4.本次结果运行图:
5.小结:我觉得真应该有1+1>2的效果,毕竟一个人的学习是无聊的,虽然我旁边是洪飞,但是在我没思路的时候他也会给我一些想法,他敲代码的同时我也会给他带一点点惊喜,总之多人的力量总是比一个人大的,我就是那种不喜欢一个人学习的人,多一个人多一点温暖。
6.“汉堡包评价”
我的队友是齐鸿飞,我觉得他会是汉堡包当中的青菜,不是那么的令人喜欢,但是缺他也是万万不可。他总会给我带来不同的思路,比如说:在我思考怎样把文件遍历的时候,他会想怎么查找单词个数。但是齐同学总爱开小差,望下次改进!
以上是关于第一次实训的主要内容,如果未能解决你的问题,请参考以下文章