黑马程序员技术交流社区

标题: 代码分享 [打印本页]

作者: 695783362    时间: 2016-11-11 23:57
标题: 代码分享
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);
        }
}

}




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