首页 > 学院 > 开发设计 > 正文

获取一个文本上每个字符出现的次数,将结果写在times.txt上

2019-11-08 02:44:52
字体:
来源:转载
供稿:网友
分析:

1.创建带缓冲的输入流对象;

2.创建双列集合对象TreeMap;

3.将读到的字符存储在双列集合中,存储的时候要做判断:如果不包含这个键,就将键和1存储,如果包含,就将该键和值+1存储;

4.关闭输入流;

5.创建输出流对象;

6.遍历集合,将集合中的内容写到times.txt中;

7.关闭输出流。

package cn.edu.jit.test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.TreeMap;/** * 获取一个文本上每个字符出现的次数,将结果写在times.txt上。 *  * 分析: * 1,创建带缓冲的输入流对象 * 2,创建双列集合对象TreeMap * 3,将读到的字符存储在双列集合中,存储的时候要做判断: * 	    如果不包含这个键,就将键和1存储,如果包含,就将该键和值+1存储 * 4,关闭输入流 * 5,创建输出流对象 * 6,遍历集合,将集合中的内容写到times.txt中 * 7,关闭输出流 * @author Rocky * */public class Test5 {	public static void main(String[] args) throws IOException {		//1,创建带缓冲的输入流对象		BufferedReader br = new BufferedReader(new FileReader("zzz.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("times.txt"));		//6 遍历集合		for(Character key : tm.keySet()) {			//判断是/t或者是/n			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();	}}


上一篇:Game!

下一篇:Codeforces Round #398 B. The Queue

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