A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 2406035442 中级黑马   /  2014-10-11 21:00  /  1238 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



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();
        }

}
您需要登录后才可以回帖 登录 | 加入黑马