java 读取键盘输入到txt文件,统计每个单词出现的次数并输出

来源:互联网 发布:dwg转pdf软件 编辑:程序博客网 时间:2024/05/16 01:55
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


0 0