首页 > 代码库 > 个人项目--词频统计
个人项目--词频统计
需求概要
原需求
1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符。
2.统计英文单词在本文件的出现次数
3.将统计结果排序
4.显示排序结果
新需求:
1.小文件输入. 为表明程序能跑
2.支持命令行输入英文作品的文件名
3. 支持命令行输入存储有英文作品文件的目录名,批量统计。
4. 从控制台读入英文单篇作品
程序输入:
1.控制台输入文本
2.英文文本文件
3.英文目录,目录下包含单个或多个英文文本文件
程序输出:
1.英文单词在本文件或控制台输入中的出现的次数,按出现次数排序
2.文本或控制台输入文字的单词数
输出位置:
控制台或指定文件
代码实现
代码有两个分支,1、选择输入文本路径或,2、选择直接输入文章
1 public static void main(String[] args) { 2 HashMap<String,Integer> map=new HashMap<String,Integer>();//用于统计各个单词的个数,排序 3 //过滤字符串中的所有标点符号 4 String regex=" ?.!:,\"\"‘‘;\n"; 5 BufferedReader br; 6 try { 7 //FileReader类创建了一个可以读取文件内容的Reader类、调用构造方法FileReader() 8 Scanner scan = new Scanner(System.in); 9 System.out.println("请输入您的输入格式");10 System.out.println("1、文件完整路径");11 System.out.println("2、文章内容");12 int flag = scan.nextInt(); 13
小文件输入键盘在控制台下输入命令。在控制台输入文本路径即可进行词频统计。
1 System.out.println("请输入文件完整路径"); 2 2 String fileUrl = scan.next(); 3 3 br = new BufferedReader(new FileReader(fileUrl));//文件完整路径 4 4 String sentence; 5 5 int wordCount = 0; 6 6 try { 7 7 while((sentence = br.readLine()) !=null){ //用readLine读取文件,判断读取文件是否为空 8 8 sentence = sentence.replaceAll(regex, ""); 9 9 StringTokenizer token=new StringTokenizer(sentence);10 10 while(token.hasMoreTokens()){ //循环遍历11 11 wordCount++; 12 12 String word = token.nextToken();13 13 if(map.containsKey(word)){ //HashMap不允许重复的key,所以利用这个特性,去统计单词的个数14 14 int count=map.get(word);15 15 map.put(word, count+1); //如果HashMap已有这个单词,则设置它的数量加116 16 }17 17 else{18 18 map.put(word, 1); //如果没有这个单词,则新填入,数量为119 19 }20 20 }21 21 }22 22 System.out.println("总共单词数:"+wordCount);23 23 sort(map); 24 24 } catch (IOException e) {25 25 e.printStackTrace();26 26 }27 27 break;
运行结果:
1 请输入文件完整路径 2 c://english.txt 3 总共单词数:181 4 as:7 5 the:7 6 not:6 7 it:6 8 to:5 9 are:410 a:411 your:412 in:413 they:314 live:315 and:316 of:217 do:218 may:219 by:220 be:221 clothes:222 that:223 often:224 have:225 from:226 above:227 is:228 you:229 door:1
代码覆盖率就是所写的单元测试所测试到的代码比例。
psp | |||||
9月26日 | |||||
类型 | 内容 | 开始时间 | 结束时间 | 被打断时间 净时间 | |
查找资料 | 学习单元测试 | 9:00 | 9:48 | 8 | 40 |
测试代码 | 学习代码测试 | 15:00 | 16:08 | 8 | 60 |
修改代码 | 词频修改 | 9:08 | 10:09 | 11 | 50 |
写博客 | 词频相关 | 22:30 | 23:15 | 5 | 40 |
ssh://git@git.coding.net:linliaimeli/FileWord.git
https://git.coding.net/linliaimeli/FileWord.git
个人项目--词频统计
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。