首页 > 编程 > Java > 正文

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

2019-11-26 11:53:50
字体:
来源:转载
供稿:网友

本文实例讲述了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.VeVB.COm/code/zishutongji

在线字符统计与编辑工具:
http://tools.VeVB.COm/code/char_tongji

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表