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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Rain2692 高级黑马   /  2014-12-13 20:43  /  1347 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如:
        a:  21 次
        b:  15 次
        c: 15 次
        把:  7 次
        当:  9 次
        前:  3 次
        ,:30 次

  1. public static void main(String[] args) throws Exception{
  2.                 // TODO Auto-generated method stub
  3.                
  4.                 BufferedReader bufr  = new BufferedReader(new FileReader("d:\\a.txt"));
  5.                 BufferedWriter bufw = new BufferedWriter(new FileWriter("d:\\new.txt"));
  6.                
  7.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
  8.                 String line = null;
  9.                 while((line= bufr.readLine())!=null)
  10.                 {      
  11.                           //这部分代码是拷贝文件
  12.                           bufw.write(line);
  13.                           bufw.newLine();
  14.                           bufw.flush();
  15.                            //以下是统计每个出现的字符数
  16.                            char[] arr = line.toCharArray();
  17.                            int i=0;
  18.                        while(i<arr.length)
  19.                        {
  20.                                if(!tm.containsKey(arr[i]))//判断是否包含该字符
  21.                                                  tm.put(arr[i],1);      //不存在,则置1
  22.                                          else
  23.                                          {                         //存在则取出统计的数,并操作
  24.                                                  int count = tm.get(arr[i]);
  25.                                                  count++;
  26.                                                  tm.put(arr[i],count);//这点注意直接覆盖了,因为值是相同的
  27.                                          }
  28.                                i++;
  29.                        }
  30.                        
  31.                 }
  32.                
  33.                 BufferedWriter bufwr = new BufferedWriter(new OutputStreamWriter(System.out));
  34.                 Set<Map.Entry<Character, Integer>> entrySet = tm.entrySet();
  35.                 Iterator<Map.Entry<Character, Integer>> it = entrySet.iterator();
  36.                 while(it.hasNext())
  37.                 {
  38.                         Map.Entry<Character, Integer> me = it.next();
  39.                         char key = me.getKey();
  40.                         int num = me.getValue();
  41.                         bufwr.write(key+":"+num+"次");
  42.                         bufwr.newLine();
  43.                         bufwr.flush();
  44.                        
  45.                 }

  46.         }
复制代码

16 个回复

倒序浏览
哥们哪期?
回复 使用道具 举报
先占一个。。。
回复 使用道具 举报
现在还看不懂,但是坚信以后会懂得
回复 使用道具 举报
受用了!准备去面试了。
回复 使用道具 举报
看不懂 。。。。
回复 使用道具 举报
看不懂,等学到这儿了再来。
回复 使用道具 举报
何桥 初级黑马 2014-12-13 22:52:22
8#
楼主可以啊
回复 使用道具 举报

支持   感谢  分享
回复 使用道具 举报
感谢 分享
回复 使用道具 举报
红楼 中级黑马 2014-12-13 23:22:58
11#
膜拜。。。。。。。。。。。
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
感谢前辈分享,谢谢咯,别删帖哦
回复 使用道具 举报
感谢分享
回复 使用道具 举报
哥们牛逼:sleepy:
回复 使用道具 举报
厉害啊,膜拜
回复 使用道具 举报
不关流吗   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马