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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾乐祥 中级黑马   /  2016-6-23 08:10  /  1336 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
                }
        }

}

9 个回复

倒序浏览
大哥,你在作比较的时候 int num = o2 - 01,出问题了o2减零1怎么减
回复 使用道具 举报
wsl123456 发表于 2016-6-23 14:18
大哥,你在作比较的时候 int num = o2 - 01,出问题了o2减零1怎么减

你玩吉他吗
回复 使用道具 举报

以前公司生产吉他的
回复 使用道具 举报
wsl123456 发表于 2016-6-24 09:53
以前公司生产吉他的

你玩吉他吗


回复 使用道具 举报

不玩,看来你对吉他蛮感兴趣的
回复 使用道具 举报
wsl123456 发表于 2016-6-24 19:45
不玩,看来你对吉他蛮感兴趣的

en ,挺感兴趣的

回复 使用道具 举报
我也挺感兴趣的!
回复 使用道具 举报
本帖最后由 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.                                 }
复制代码
回复 使用道具 举报
010101010101010
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马