java reverseOrder()不工作
我想用Java8编写一个小程序,它以相反的字典顺序打印字符列表。例如,“stack”应该变成“tskca”。我输入了以下代码:java reverseOrder()不工作,java,sorting,Java,Sorting,我想用Java8编写一个小程序,它以相反的字典顺序打印字符列表。例如,“stack”应该变成“tskca”。我输入了以下代码: public static void main (String[] args) { String input = "abc"; char[] charArray = input.toCharArray(); List<Character> charList = new ArrayList<Character>();
public static void main (String[] args) {
String input = "abc";
char[] charArray = input.toCharArray();
List<Character> charList = new ArrayList<Character>();
for (char c : charArray) {
charList.add(c);
}
System.out.println(charList.toString());
charList.sort(Collections.reverseOrder());
String output = charList.toString();
System.out.println(input);
}
我试过了
Collections.sort(charList, Collections.reverseOrder());
取而代之的是另一个排序行,结果相同。我查找了类似的问题,但没有发现相同的问题。我把事情搞砸了吗?只是有点打字错误。。。改变
System.out.println(input);
到
我认为打印正确的字符串会有所帮助;) 如果您希望打印的是
cba
而不是[c,b,a]
,请对每个使用:
charList.stream().forEach(System.out::print);
报价:System.out.println(输入)代码>旁注:java没有为基元类型提供类似比较器的接口,这非常令人恼火。另外:使用数组更有效。排序(charArray)
,然后反转生成的数组。@TobiasWeimer不特别是;您上一次想按自然顺序(使用Arrays.sort
)或反向自然顺序(使用Arrays.sort
,然后反向数组)以外的任何方式对基元数组进行排序是什么时候?@AndyTurner我确实想按不区分大小写的顺序对字符进行排序。或者对于int[]
,按它们的绝对值对它们进行排序可能是有意义的。这不是问题的全部。试着运行你的解决方案,你会发现它仍然不起作用work@bhspencer我运行了,运行得很好。谢谢!这样一个小错误。老兄,我因为这个而错过了一次面试:(:)@AndyTurner没错,但从那以后就不难了。听到这个消息我很难过。但这发生在我们中最好的人身上。我甚至不想去想我花了多少时间调试这些愚蠢的打字错误。。我建议使用intellij作为IDE。它会警告您,输出已分配但从未使用
System.out.println(output);
System.out.println(output);
charList.stream().forEach(System.out::print);