本文实例讲述了Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法。分享给大家供大家参考,具体如下:
package javatest; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入 :"); String inputStr = scanner.nextLine(); System.out.println("inputStr : " + inputStr); File file = new File("D:/test/test01.txt"); FileOutputStream fileOut; try { fileOut = new FileOutputStream(file); fileOut.write(inputStr.getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String result = ""; try { BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件 String s = null; while ((s = br.readLine()) != null) {//使用readLine方法,一次读一行 result = result + s + " "; } br.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println("---------------------------------------------"); System.out.println(result); String[] arr = result.split(" "); System.out.println(Arrays.toString(arr)); System.out.println(arr.length); Map<String, Integer> map = new HashMap<>(); for (String str : arr) { Integer num = map.get(str); map.put(str, num == null ? 1 : num + 1); } Set set = map.entrySet(); Iterator it = set.iterator(); System.out.println("---------------------------------------------"); System.out.println("方法一 :"); while (it.hasNext()) { Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>) it.next(); System.out.println("单词 " + entry.getKey() + " 出现次数 : " + entry.getValue()); } System.out.println("---------------------------------------------"); System.out.println("方法二 :"); Iterator it01 = map.keySet().iterator(); while (it01.hasNext()) { Object key = it01.next(); System.out.println("单词 " + key + " 出现次数 : " + map.get(key)); } } }
输出:
请输入 : AAA BBB CCC DDD DDD AAA inputStr : AAA BBB CCC DDD DDD AAA --------------------------------------------- AAA BBB CCC DDD DDD AAA [AAA, BBB, CCC, DDD, DDD, AAA] 6 --------------------------------------------- 方法一 : 单词 AAA 出现次数 : 2 单词 CCC 出现次数 : 1 单词 BBB 出现次数 : 1 单词 DDD 出现次数 : 2 --------------------------------------------- 方法二 : 单词 AAA 出现次数 : 2 单词 CCC 出现次数 : 1 单词 BBB 出现次数 : 1 单词 DDD 出现次数 : 2
PS:这里再为大家推荐2款非常方便的统计工具供大家参考使用:
在线字数统计工具:
http://tools.jb51.net/code/zishutongji
在线字符统计与编辑工具:
http://tools.jb51.net/code/char_tongji
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。