IO流(15)--与TreeMap统计文本中每个字符出现的次数
2017-12-13 20:27
302 查看
package com.fenqing.stream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.TreeMap; public class test { /** * 获取一个文本上每个字符出现的次数,将结果写在time.txt上 */ public static void main(String[] args) throws IOException { //1创建带缓冲的输入流对象 BufferedReader br=new BufferedReader(new FileReader("zz.txt")); //2创建双列集合对象TreeMap TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>(); //3将读到的字符存储在双列集合中,存储的时候要做判断,如果不包括这个键,就将健和1存储,如果包含这个键,就将该健和值加1存储 int ch; while((ch=br.read())!=-1){ char c=(char)ch; //强制类型转换 /*if(!tm.containsKey(c)){ tm.put(c, 1); }else{ tm.put(c, tm.get(c)+1); }*/ tm.put(c, !tm.containsKey(c)?1:tm.get(c)+1); //优化 } //4关闭输入流 br.close(); //5创建输出流对象 BufferedWriter bw=new BufferedWriter(new FileWriter("time.txt")); //6遍历集合,将集合中的内容写到time.txt中 /*for (Character key : tm.keySet()) { bw.write(key+"="+tm.get(key)); bw.newLine(); }*/ for (Character key : tm.keySet()) { //优化 switch(key){ case '\t': bw.write("\\t"+"="+tm.get(key));break; case '\n': bw.write("\\n"+"="+tm.get(key));break; case '\r': bw.write("\\r"+"="+tm.get(key));break; default: bw.write(key+"="+tm.get(key));break; } bw.newLine(); } //7关闭输出流 bw.close(); } }
相关文章推荐
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出例如: a: 21 次 b: 15 次 c:: 15 次 把: 7 次 当: 9 次 前: 3 次
- 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出
- java中TreeMap的用法-统计字符串中每个字符出现的次数
- Java - 统计字符串中每个字符出现次数
- 统计文本文件中数字字符出现的次数
- linux实现针对文本统计字母出现的次数(所有的可打印的字符)
- 统计某字符串中每个字符出现的次数
- JavaScript统计字符串中每个字符出现次数完整实例
- JavaScript统计字符串中每个字符出现次数完整实例
- 第13周-项目1-小玩文件-用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数
- javascript 统计字符串中每个字符出现的次数
- 第十三周 项目5(1):统计每个数字字符出现的次数
- 线性时间内统计一个字符串中每个字符出现的次数
- 统计字符串中每个字符出现的次数 打印结果是:a(2)b(1)
- 小方法1——CountChar--统计一个字符串中每个字符出现的次数
- 从控制台获取一串字符串,并对每个字符出现的次数进行统计
- Scheme 练习 - 统计字符串中每个字符出现的次数
- 输入任意字符串,统计字符串中每个字符出现的次数
- 随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
- 统计字符串中的每个字符出现次数