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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 695783362 中级黑马   /  2016-11-11 23:57  /  735 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;

/*
   题目:把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:

        a:  21 次
        b:  15 次
        c:: 15 次
                    把:  7 次
                    当:  9 次
                    前:  3 次
                     ,:30 次
*/
public class Test15 {
        
        public static void main(String[] args) throws Exception{
        TreeMap<Character , Integer> tm = new TreeMap<Character , Integer> ();

        BufferedReader bufr = new BufferedReader(new FileReader("D:\\Test.txt"));
        BufferedWriter bufw = new BufferedWriter(new FileWriter("D:\\Test1.txt"));
        
        String line = null;
        while((line=bufr.readLine())!=null){

                store(line,tm);// 将每一行数据存入集合中
        }
        bufr.close();
        
        // 将存在Map集合中的元素取出 ,存入 bufw
        Set<Character> keySet = tm.keySet();
        Iterator<Character> it = keySet.iterator();
        while(it.hasNext()){
                Character key = it.next();
                Integer value = tm.get(key);
               
                bufw.write(key+": "+value);// 存入目的文本中
                bufw.newLine();
        }
        bufw.close();
}
// 创建读取一行数据的方法 "abcd"
public static void store(String line, TreeMap<Character , Integer> tm){
        // 字符串转换为字符数组
        char[] ch = line.toCharArray();
        
        // 遍历字符数组,
        for(int i=0; i<ch.length; i++){
                // 字符作为键,获取值
                Character key = ch[i];
                Integer value = tm.get(key);
                if(value==null){
                        tm.put(key, 1);
                }else
                        tm.put(key, value+1);
        }
}

}

0 个回复

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