59.Java推荐使用Collator类进行中文排序

2018-03-11  本文已影响0人  ggr

关于java中的涉及到的一些中文排序的问题一直都是一个很头疼的问题,因为java采用UNICODE编码,而中文的UNICODE编码来源于GB18030,GB18030有时从GB2312发展上来的,gb2312包含了7000多个字符的字符集,按照拼音排序,之后的GBK,GB18030都是慢慢扩充的,所以要上他们完整排序难度很大。一般情况下我们使用的是Collator进行处理中文排序,Collator类的使用如下:

public class Client {

    public static void main(String[] args) throws Exception {

        String[] words = {"阿婷(A)","胖子(P)","猪大侠(Z)"};

        //定义一个中文排序器
        Comparator c = Collator.getInstance(Locale.CHINA);

        Arrays.sort(words,c);

        for(int i=0;i<words.length;i++){
            System.out.println("i"+i+"-->"+words[i]);
        }
    }


当然如果你非要追求极致的话,可以使用一些开源的项目比如pinyin4j把汉字转换为拼音再自定义排序。如果排序不是一个关键算法,还是使用Collator类即可。

上一篇下一篇

猜你喜欢

热点阅读