黑马程序员技术交流社区

标题: 重键盘录入一个字符串,程序对其中所有字符串进行排序 [打印本页]

作者: flynihao53    时间: 2016-3-16 10:05
标题: 重键盘录入一个字符串,程序对其中所有字符串进行排序
                // 1、键盘录入字符串 Scanner
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个字符串");
                String line = sc.nextLine();
                //2、将字符串转换为字符数组
                char[] arr = line.toCharArray();
                //3、定义TreeSet集合,传入比较器并保留
                TreeSet<Character> ts = new TreeSet<>(new Comparator<Character>() {
                        @Override
                        public int compare(Character c1,Character c2){
                        int num = c1.compareTo(c2);
                        //int num = c1 - c2;   //自动装箱
                        return num == 0 ? 1 : num;
                }
                });
               
                //4、遍历字符数组,将每一个字符存储在TreeSet集合中
                for (char c : ts) {
                        ts.add(c);       //自动拆箱
                        System.out.println("*************");
                }
                //5、遍历该集合,打印每一个字符
                for (Character c1 : ts) {               
                        System.out.print(c1);
                }
               
                System.out.println("*************");
        }

}
//注 此程序有问题,两个for循环没有执行,即不能输出


作者: flynihao53    时间: 2016-3-16 10:07
我打断点调试了一下,执行到for循环就直接跳过。。。为啥呢
作者: ameanboy    时间: 2016-3-16 12:30
arr数组你忘记存到tree里了
作者: flynihao53    时间: 2016-3-16 14:24
ameanboy 发表于 2016-3-16 12:30
arr数组你忘记存到tree里了

我那儿的     “  //4、遍历字符数组,将每一个字符存储在TreeSet集合中”注释下的代码就是将数组存储在TreeSet集合啊,可是第一个for循环就没进去
作者: Senmonfy    时间: 2016-3-16 21:36
arr数组你忘记存到tree里




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