经过5个小时成功把simple mode写差不多了。。orz 也是蛮拼的。
开始毫无头绪,本能地开始从度娘搜索‘c# 单词统计’= =看了两段代码也算是见过c#的人了。差不多花了我1小时的时间。
然后我觉得simple mode 大概分为下面几个步骤:
- 读文件:根据目录遍历其所有text files,并整合成一个大的result 集合。
我老觉得一开始就用文件的读写不好调bug,没有命令行方便,于是这部分决定最后再憋。一个递归应该憋不了多久吧。。。 - 统计单词:
- 作业对‘单词’进行了重新地定义,因此需要按照新的定义分割result集合。开始想的是用java曾经用到的string.split()函数,把所有的delimiter传进去的方法(毕竟是吴际虐过的学生:))。但马上改成了用正则表达式进行单词匹配,因为我发现delimiter很难枚举出来。好吧其实是发现周围人都在用正则表达式→_→。所谓墙头草。。。
完成正则表达式还有相应的匹配用了大概2个小时。 - 词频统计:
- 作业上要求越快越好。然后我就开始纠结用什么数据结构。本来准备用散列表,但立马改成了Dictionary结构。是的因为发现周围人都在用这个结构。。这样做是有道理的因为Dictionary内部就是用Hashtable构建的,相当于它的升级版。同时考虑到需要处理大小写不敏感的问题——字母相同大小写不同输出的时候要根据字典序选择最靠前的大小写形式。考虑后决定将‘sta_name’作为Tkey,其值一律小写。并创建一个两个元素的集合CountAndName作为TValue(count,printname)。这样既可以记录词频又可以记录当前最靠前的大小写形式。
处理这部分真是醉了,特别感谢MSDN,上面有很多函数的说明对我的帮助很大,再也不用担心不会用函数。用了3个小时写完最主要的部分。 - 输出至文件:这个5分钟吧。。。忽略不计
于是我现在快要爆 炸 了:)我要睡觉,对不起了老师我要翘明天第一节课了你不要怪我
2014.9.23 1:39
-------------------------------------------------------------------------------------------------------------
时间: 2024-10-28 21:54:26