Java编程中怎样实现中文排序

Python041

Java编程中怎样实现中文排序,第1张

简单的实现排序,可以参考如下的代码

import java.text.Collator

import java.util.Arrays

import java.util.Comparator

import java.util.Locale

public class PYDemo {

public static void main(String[] args) {

String[] names= {"赵z子z龙l","刘l备b","关g羽y","张z飞f"}

System.out.println("排序前"+Arrays.toString(names))

Comparator cpt = Collator.getInstance(Locale.CHINA) 

Arrays.sort(names, cpt)

System.out.println("排序后"+Arrays.toString(names))

}

}

测试输出

排序前[赵z子z龙l, 刘l备b, 关g羽y, 张z飞f]

排序后[关g羽y, 刘l备b, 张z飞f, 赵z子z龙l]

如果有一些非常用的汉字,生僻字等,建议使用一些jar包实现,比如pinyin4j

public class SortByChinese {

//测试

    public static void main(String[] args) {

        String[] a1 = {"保定","何子安","于小云","刘帝","刘何保定子安","刘","刘娜","家强","刘博"} 

        getSortOfChinese(a1)

        for (int i = 0 i < a1.length i++) {

            System.out.println(a1[i])

        }

    }

/**

 * 

 * @param a String[]

 * @return String[]

 */

    public static String[] getSortOfChinese(String[] a) {

        // Collator 类是用来执行区分语言环境这里使用CHINA

        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA)

        // JDKz自带对数组进行排序。

        Arrays.sort(a, cmp)

        return a

    }

}public class SortByChinese {

//测试

    public static void main(String[] args) {

        String[] a1 = {"小二","张三","李四","王五","刘七"} 

        getSortOfChinese(a1)

        for (int i = 0 i < a1.length i++) {

            System.out.println(a1[i])

        }

    }

/**

 * 

 * @param a String[]

 * @return String[]

 */

    public static String[] getSortOfChinese(String[] a) {

        // Collator 类是用来执行区分语言环境这里使用CHINA

        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA)

        // Arrays工具类对数组进行排序。

        Arrays.sort(a, cmp)

        return a

    }

}

试试对你的问题是否有用

//按照中文第一个字母升序排列的实现

import java.text.Collator

import java.util.Arrays

import java.util.Comparator

public class test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Comparator<Object>com=Collator.getInstance(java.util.Locale.CHINA)

String[] newArray={"上海","天津","广州","杭州","辽宁","南京","武汉","北京","厦门","内蒙"}

Arrays.sort(newArray,com)

for(String i:newArray){

System.out.print(i+" ")

}

}

}