黑马程序员技术交流社区

标题: 这个排序为什么不成功呢? [打印本页]

作者: 曾乐祥    时间: 2016-6-23 08:10
标题: 这个排序为什么不成功呢?
public class test6 {

        /**
         * 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
         *         分析:
         *         1:实现键盘录入,输入整数未知,所以使用while循环,因为要输入quit时结束输入,所以,录入的整数为字符串类型
         *         2:将每个字符串转成基本类型
         *         3:创建TreeSet集合,实现comparator接口,并重写compare方法,定义规则,倒序
         *         4:打印
         */
        public static void main(String[] args) {
                //1:实现键盘录入,输入整数未知,所以使用while循环,因为要输入quit时结束输入,所以,录入的整数为字符串类型
                Scanner sc= new Scanner(System.in);
                System.out.println("请输入任意个整数,以quit结束。");
                //3:创建TreeSet集合,实现comparator接口,并重写compare方法,定义规则,倒序
                TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {

                        @Override
                        public int compare(Integer o1, Integer o2) {
                                int num = o2 - 01;
                                return num == 0 ? 1:num;
                        }
                });
                while (true) {
                        String line = sc.nextLine();
                        if ("quit".equals(line)) {
                                break;
                        }
                        //2:将每个字符串转成基本类型
                        int i = Integer.parseInt(line);
                        ts.add(i);
                }
                for (Integer i : ts) {
                        System.out.println(i);
                }
        }

}

作者: wsl123456    时间: 2016-6-23 14:18
大哥,你在作比较的时候 int num = o2 - 01,出问题了o2减零1怎么减
作者: yuanqing    时间: 2016-6-23 21:08
wsl123456 发表于 2016-6-23 14:18
大哥,你在作比较的时候 int num = o2 - 01,出问题了o2减零1怎么减

你玩吉他吗
作者: wsl123456    时间: 2016-6-24 09:53
yuanqing 发表于 2016-6-23 21:08
你玩吉他吗

以前公司生产吉他的
作者: yuanqing    时间: 2016-6-24 13:52
wsl123456 发表于 2016-6-24 09:53
以前公司生产吉他的

你玩吉他吗



作者: wsl123456    时间: 2016-6-24 19:45
yuanqing 发表于 2016-6-24 13:52
你玩吉他吗

不玩,看来你对吉他蛮感兴趣的
作者: yuanqing    时间: 2016-6-24 23:43
wsl123456 发表于 2016-6-24 19:45
不玩,看来你对吉他蛮感兴趣的

en ,挺感兴趣的


作者: 星空@3    时间: 2016-6-25 00:02
我也挺感兴趣的!
作者: aliali007    时间: 2016-6-26 20:58
本帖最后由 aliali007 于 2016-6-26 21:00 编辑

亲,我说一下你这个程序的一些错误,我也是小白,多多指教。
1.类名首字母要大写,test6应该改为Test6;
2.TreeSet<>中应该增加Integer,TreeSet<Integer> ts = new TreeSet<Integer>(new Comparator<Integer>()
3.这行代码有笔误,不是01,应该是o1;———————>>>int num = o2 - 01;
4.应该使用try/catch语句,当用户输入的不是整数的时候,可以处理异常,输出提示语句,让用户继续输入,避免程序中断。
  1. while (true) {
  2.                                         try{
  3.                         String line = sc.nextLine();
  4.                         if ("quit".equals(line)) {
  5.                                 break;
  6.                         }
  7.                         //2:将每个字符串转成基本类型
  8.                         int i = Integer.parseInt(line);
  9.                         ts.add(i);

  10.                 }
  11.                                 
  12.                                 catch(Exception e){
  13.                                         System.out.println("输入错误,请输入整数");
  14.                                 }
复制代码

作者: gaojiangjian    时间: 2016-6-26 23:28
010101010101010




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