Java Arrays.sort只是因为某种原因而不排序
对,我对这段代码有点问题,我一辈子都搞不清楚到底发生了什么:Java Arrays.sort只是因为某种原因而不排序,java,arrays,sorting,Java,Arrays,Sorting,对,我对这段代码有点问题,我一辈子都搞不清楚到底发生了什么: String test = "Test"; char[] charArray = test.toCharArray(); Arrays.sort(charArray); for(char a:charArray) { System.out.println(a); } 不管出于什么原因,这根本不是对我的数组进行排序,我已经没有理由解释为什么它不能像我期望的那样进行排序了?有人知道它为什么不这样做吗?是的,它被排序是因为T小于T
String test = "Test";
char[] charArray = test.toCharArray();
Arrays.sort(charArray);
for(char a:charArray)
{
System.out.println(a);
}
不管出于什么原因,这根本不是对我的数组进行排序,我已经没有理由解释为什么它不能像我期望的那样进行排序了?有人知道它为什么不这样做吗?是的,它被排序是因为
T
小于T
。如果您想排序,不管它们是大写还是小写,请尝试
char[] charArray = test.toLowerCase().toCharArray();
Arrays.sort(charArray);
是,它被排序是因为
T
小于T
。如果您想排序,不管它们是大写还是小写,请尝试
char[] charArray = test.toLowerCase().toCharArray();
Arrays.sort(charArray);
它正在对数组进行排序。你就是没有意识到。”T在e之前,然后是s,然后是T。检查字符及其值。您的数组在创建时已被排序。它正在排序数组。你就是没有意识到。”T在e之前,然后是s,然后是T。检查字符及其值。您的数组在创建时已被排序。在Java中,如果您这样做:
if('T' < 't') {
System.out.println("Yes");
} else {
destroyTheWorld(); //We are safe
}
if('T'<'T'){
System.out.println(“是”);
}否则{
毁灭世界();//我们是安全的
}
它将打印“是”
'T'
比'T'
小,详情见表
可能的解决方案是用Java编写自己的比较器。,如果您这样做:
if('T' < 't') {
System.out.println("Yes");
} else {
destroyTheWorld(); //We are safe
}
if('T'<'T'){
System.out.println(“是”);
}否则{
毁灭世界();//我们是安全的
}
它将打印“是”
'T'
比'T'
小,详情见表
可能的解决方案是编写自己的比较器。您选择的输入已经排序
String test = "Test123"; // <-- this will output 1,2,3,T,e,s,t with your current code.
String test=“Test123”// 您选择的输入已排序
String test = "Test123"; // <-- this will output 1,2,3,T,e,s,t with your current code.
String test=“Test123”//打印出来的是什么?打印出来的是什么?