Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法

时间:2021-05-20

本文实例讲述了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 AAAinputStr : 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程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章