黑马程序员技术交流社区

标题: 共同学习 [打印本页]

作者: 2406035442    时间: 2014-10-11 21:00
标题: 共同学习


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;

public class Test2 {

        /**
         * @param args
         * ,统计某个.txt中每个字符出现的次数 统计结果按照字典顺序排列写入到times.txt中
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                BufferedReader br = new BufferedReader(new FileReader("day20.java"));        //创建输入流对象,关联day20.java
                TreeMap<Character, Integer> tm = new TreeMap<>();                                                //创建双列集合
                int ch;
                while((ch = br.read()) != -1) {                                                                                        //读字符
                        char key = (char)ch;                                                                                                //读到的字符会提升为int类型,所以强转为char才能存储在双列集合中
                        /*if(!tm.containsKey(key)) {                                                                                //如果集合中不包含这个键
                                tm.put(key, 1);                                                                                                        //就将键和值为1存储
                        }else {                                                                                                                                //如果集合包含这个键
                                tm.put(key, tm.get(key) + 1);                                                                        //就将键和值加1存储
                        }*/
                        tm.put(key, !tm.containsKey(key) ? 1 : tm.get(key) + 1);
                }
                br.close();
                BufferedWriter bw = new BufferedWriter(new FileWriter("times.txt"));        //创建输出流对象,关联times.txt
               
                for(Character key : tm.keySet()) {                                                                                //遍历双列集合
                        switch(key) {                                                                                                                //是否匹配
                        case '\t':                                                                                                                        //如果是\t
                                bw.write("\\t" + "=" + tm.get(key));                                                        //就将\t写出
                                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));
                        }
                        bw.newLine();                                                                                                                //写出换行
                }
               
                bw.close();
        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2