Java怎么按照汉字字典顺序给字符串排序?

Python017

Java怎么按照汉字字典顺序给字符串排序?,第1张

//按照中文第一个字母升序排列的实现\x0d\x0aimport java.text.Collator \x0d\x0aimport java.util.Arrays \x0d\x0aimport java.util.Comparator \x0d\x0apublic class test { \x0d\x0a/** \x0d\x0a * @param args \x0d\x0a */ \x0d\x0apublic static void main(String[] args) { \x0d\x0a// TODO Auto-generated method stub \x0d\x0aComparator com=Collator.getInstance(java.util.Locale.CHINA) \x0d\x0aString[] newArray={"上海","天津","广州","杭州","辽宁","南京","武汉","北京","厦门","内蒙"} \x0d\x0aArrays.sort(newArray,com) \x0d\x0afor(String i:newArray){ \x0d\x0aSystem.out.print(i+" ") \x0d\x0a} \x0d\x0a} \x0d\x0a}

        /**

 * 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个英文字母的顺序决定。

=======================如果是你想问的请给最佳回答,有不懂得可以追问==========谢谢。