本文实例讲述了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
希望本文所述对大家java程序设计有所帮助。
新闻热点
疑难解答
图片精选