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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fatesabering 中级黑马   /  2014-12-24 21:00  /  1300 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

笔试的题 不过我无法让a排在第一位而逗号排在最后,哪位大神能帮我指点一下,这个比较器该怎么写呢
  1. package com.itheima;

  2. import java.io.*;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5. import java.util.Iterator;
  6. import java.util.TreeMap;

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

  9.    a:  21 次
  10.    b:  15 次
  11.    c: 15 次
  12.         把:  7 次
  13.         当:  9 次
  14.         前:  3 次
  15.         ,:30 次

  16. * */
  17. class MyComp implements Comparator<Character>
  18. {
  19.         public int compare(Character ch1,Character ch2)
  20.         {
  21.                 int num = ch1.compareTo(ch2);
  22.                 //if(ch1==','&&ch2==',')
  23.                 //        return 1;
  24.                 return num;
  25.         }
  26. }
  27. public class Test06 {
  28.         public static void main(String[] args) {
  29.                 File f = new File("data.txt");
  30.                 Comparator<Character> c = new MyComp();
  31.                 copyAndCount(f,c);
  32.         }
  33.         public static void copyAndCount(File f,Comparator<Character> c)
  34.         {
  35.                 BufferedReader bufr = null;
  36.                 BufferedWriter bufw = null;
  37.                 try {
  38.                         bufr = new BufferedReader(new FileReader(f));
  39.                         bufw = new BufferedWriter(new FileWriter("copy.txt"));
  40.                         TreeMap<Character, Integer> tm = new TreeMap<Character,Integer>(c);
  41.                         int ch=0;
  42.                         int count =0;
  43.                         while((ch=bufr.read())!=-1)
  44.                         {
  45.                                 bufw.write(ch);
  46.                                 Integer value = tm.get((char)ch);
  47.                                 if(value!=null)
  48.                                         count=value;
  49.                                 count++;
  50.                                 tm.put((char)ch, count);
  51.                                 count=0;
  52.                         }
  53.                         Iterator<Character> it = tm.keySet().iterator();
  54.                         while(it.hasNext())
  55.                         {
  56.                                 char key = it.next();
  57.                                 Integer time = tm.get(key);
  58.                                 System.out.println(key+": "+time+" 次");
  59.                         }
  60.                 } catch (IOException e) {
  61.                         // TODO: handle exception
  62.                         System.out.println(e.toString());
  63.                 }
  64.                 finally
  65.                 {
  66.                         try {
  67.                                 if(bufr!=null)
  68.                                         bufr.close();
  69.                         } catch (IOException e2) {
  70.                                 // TODO: handle exception
  71.                                 System.out.println(e2.toString());
  72.                         }
  73.                         try {
  74.                                 if(bufw!=null)
  75.                                         bufw.close();
  76.                         } catch (IOException e2) {
  77.                                 // TODO: handle exception
  78.                                 System.out.println(e2.toString());
  79.                         }
  80.                 }
  81.         }
  82. }
复制代码

7 个回复

倒序浏览
没有明白你的问题,你这程序是正确的啊,按照自然顺序,a排在第一位啊,","排在最后一位。
回复 使用道具 举报
。。。。。。。。。。。。。。
回复 使用道具 举报
路过。。。
回复 使用道具 举报
入学考试的笔试题目吗?
回复 使用道具 举报
是入学考试题?还是找工作时的面试题?
回复 使用道具 举报
怎么不写注释呢?  
回复 使用道具 举报
比较器有问题,重写compareTo方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马