java 读取键盘输入到txt文件,统计每个单词出现的次数并输出
2015-10-09 22:05
716 查看
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
相关文章推荐
- java 统计数组中各元素出现的次数
- Map.Entry和Map中的map.keySet()、map.entrySet()详解
- Map.Entry
- java 初级之封装的实现步骤
- java初级 之主要类的总结
- 韩顺平java 第32讲 swing编程实战
- IO流上:概述、字符流、缓冲区(java基础)
- 搭建纯SSH框架(一)
- Java线程:概念与原理(一)
- spring 注解配置bean
- eclipse如何导入war包
- java 虚拟机--新生代与老年代GC
- Java基础知识强化之集合框架笔记60:Map集合之TreeMap(TreeMap<Student,String>)的案例
- java入门代码
- java入门代码
- Java基础知识强化之集合框架笔记59:Map集合之TreeMap(TreeMap<String,String>)的案例
- java多线程
- 如何关闭MyEclipse的update(转)
- 软件测试开发技术Java初学者需要了解的几个基础问题
- Java窗口居中