黑马程序员技术交流社区
标题:
重键盘录入一个字符串,程序对其中所有字符串进行排序
[打印本页]
作者:
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