一个命令行程序WordCount
-
统计文件的字符数(对应输出第一行): 只统计Ascii码,空格,水平制表符,换行符。
-
统计文件的单词总数(对应输出第二行),单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
-
统计文件的有效行数(对应输出第三行):任何包含非空白字符的行,都需要统计。
-
统计文件中各单词的出现次数(对应输出接下来10行),最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词。输出的单词统一为小写格式
-
然后将统计结果输出到output.txt,输出的格式如下;其中word1和word2 对应具体的单词,number为统计出的个数;换行使用'\n',编码统一使用UTF-8。
创建 README.md
创建 codestyle.md
更新 codestyle.md,加入我的代码规范。
第一次代码提交
- 统计文件的字符数
- 对应输出到文件
加入.gitignore
第二次代码提交
- 统计文件有效行数
- 对应输出到文件
- 修改编码统一使用UTF-8
修改.gitignore
第三次代码提交
- 统计单词数
- 对应输出到文件
第四次代码提交
- 统计文件中各单词的出现次数
- 对应输出到文件
第五次代码提交
- 修改存储单词的数据结构为TreeMap,在储存单词时按字典序排序
- 修复了文件只有一行时会多算一个换行符的Bug
- 增加抛出异常的说明性文字
第六次代码提交
- 修改为HashMap存储单词和出现次数
第七次代码提交
- 基于单元测试,修复了统计文件字符数时如果多个换行符出现只计算一个的bug
- 完善抛出异常的说明性文字
第八次代码提交
- 新增'\r'计入字符总数
- 基于单元测试,修复从文件中读取数据的小Bug
修改codestyle.md
第九次代码提交
- 换行统一使用\n
- 运用Jprofiler基于性能分析,在较大数据情况下,treemap耗时更短,修改为TreeMap存储单词和出现次数
第十次代码提交
- 依据新提示:不会出现ascii码之外的字符,删去对于中文的判断和过滤的语句,优化性能
完善README.md
第十次代码提交
- 完善注释
第十一次代码提交
- 冒号后面补充空格