* str(需要排序的字符串),desc(true:从小到大,false:从大到小)
* @param str
* @param desc
*/
public static void stringSort(String str,boolean desc){
char[] array=str.toCharArray()
if(desc){//从小到大排序
for (int i = 0 i <array.length i++) {
for(int j=0j<array.length-i-1j++){
if(array[j]>array[j+1]){
char temp=array[j]
array[j]=array[j+1]
array[j+1]=temp
}
}
}
System.out.print("从小到大:")
for (int i = 0 i < array.length i++) {
if(i==array.length-1){
System.out.println(array[i])
}else{
System.out.print(array[i]+",")
}
}
}else{
for (int i = 0 i <array.length i++) {
for(int j=0j<array.length-i-1j++){
if(array[j]>array[j+1]){
char temp=array[j]
array[j]=array[j+1]
array[j+1]=temp
}
}
}
System.out.print("从小到大:")
for (int i = 0 i < array.length i++) {
if(i==array.length-1){
System.out.println(array[i])
}else{
System.out.print(array[i]+",")
}
}
}
}
答案:java中所有类的排序是根据该类中的toString方法来排序的,你可以通过查看String类的底层代码找到其toString()方法来看他是如何排序的。这是原理对于单独这个问题:字符串排序时根据字符串第一个字符的按照自然顺序排序
自然顺序:例如如果第一个是数字,则按照从小到大排序,如果第一个字符相同则再比较第二个字符
以此类推,对于字母则根据26个英文字母的顺序决定。
=======================如果是你想问的请给最佳回答,有不懂得可以追问==========谢谢。