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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.lianxi;

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.Set;
import java.util.TreeMap;
/*6、统计一个文本文件中字符出现的次数,结果存入另外的一个文本文件中。例如:

a :  21 次
b :  15 次
c :  15 次
d :  7 次
e :  9 次
f :  3 次
g :  30 次*/

public class Text7 {
        public static void main(String[] args) throws IOException {
//                读文本
                BufferedReader bur = new BufferedReader(new FileReader("g:\\a.txt"));
                String s ="";
                String line=null;
                while((line=bur.readLine())!=null){
//                        把读的数据给s
                        s=line;
                }
//                把字符串转成字符数组
                char [] ch=s.toCharArray();
//                创建一个treemap集合
                TreeMap<Character, Integer> tm=new TreeMap<Character, Integer>();
//                遍历把数组元素添加到集合
                for(char c: ch){
                        Integer i = tm.get(c);
//                        利用treemap集合,统计元素个数
                        if(tm.get(c)==null){
                                tm.put(c, 1);
                        }else{
                                i++;
                                tm.put(c, i);
                        }
                }
//                创建可变字符串缓冲区
                StringBuilder sb =new StringBuilder();
//                写数据
                BufferedWriter buw = new BufferedWriter(new FileWriter("g:\\b.txt"));
//                遍历集合
                Set<Character> set=tm.keySet();
                for(Character key : set){
                        Integer value=tm.get(key);
//                        把键值对按要求拼接添加到sb
                        sb=sb.append(key).append(": ").append(value).append("次");
                        s=sb.toString();
//                        写
                        buw.write(s);
//                        写一个删一个
                        sb=sb.delete(0, sb.length());
                        buw.newLine();
                }
                bur.close();
                buw.close();
        }
       

}

0 个回复

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