Skip to content

Latest commit

 

History

History
110 lines (71 loc) · 2.71 KB

README.md

File metadata and controls

110 lines (71 loc) · 2.71 KB

WordCount-Java


简介


一个命令行程序WordCount

功能

  1. 统计文件的字符数(对应输出第一行): 只统计Ascii码,空格,水平制表符,换行符。

  2. 统计文件的单词总数(对应输出第二行),单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。

  3. 统计文件的有效行数(对应输出第三行):任何包含非空白字符的行,都需要统计。

  4. 统计文件中各单词的出现次数(对应输出接下来10行),最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词。输出的单词统一为小写格式

  5. 然后将统计结果输出到output.txt,输出的格式如下;其中word1和word2 对应具体的单词,number为统计出的个数;换行使用'\n',编码统一使用UTF-8。

说明


第一次commit

创建 README.md

第二次commit

创建 codestyle.md

第三次commit

更新 codestyle.md,加入我的代码规范。

第四次commit

第一次代码提交

  • 统计文件的字符数
  • 对应输出到文件

加入.gitignore

第五次commit

第二次代码提交

  • 统计文件有效行数
  • 对应输出到文件
  • 修改编码统一使用UTF-8

修改.gitignore

第六次commit

第三次代码提交

  • 统计单词数
  • 对应输出到文件

第七次commit

第四次代码提交

  • 统计文件中各单词的出现次数
  • 对应输出到文件

第八次commit

第五次代码提交

  • 修改存储单词的数据结构为TreeMap,在储存单词时按字典序排序
  • 修复了文件只有一行时会多算一个换行符的Bug
  • 增加抛出异常的说明性文字

第九次commit

第六次代码提交

  • 修改为HashMap存储单词和出现次数

第十次commit

第七次代码提交

  • 基于单元测试,修复了统计文件字符数时如果多个换行符出现只计算一个的bug
  • 完善抛出异常的说明性文字

第十一次commit

第八次代码提交

  • 新增'\r'计入字符总数
  • 基于单元测试,修复从文件中读取数据的小Bug

修改codestyle.md

第十二次commit

第九次代码提交

  • 换行统一使用\n
  • 运用Jprofiler基于性能分析,在较大数据情况下,treemap耗时更短,修改为TreeMap存储单词和出现次数

第十三次commit

第十次代码提交

  • 依据新提示:不会出现ascii码之外的字符,删去对于中文的判断和过滤的语句,优化性能

第十四次commit

完善README.md

第十五次commit

第十次代码提交

  • 完善注释

第十六次commit

第十一次代码提交

  • 冒号后面补充空格