Java中文首字母排序生僻字问题记录

748 阅读1分钟

Java 自带的Collator 也就是java.text.Collator在实际使用的过程中,发现对有的,甚至不算是偏僻的汉子,也会出现排序不正常的问题,如“邸”字,就会排到最后,实际上,这个字拼音首字母是D,应该在C和E之间。

后来使用了ibm的一个包,解决了这个字的问题

添加依赖

<!-- https://mvnrepository.com/artifact/com.ibm.icu/icu4j -->
<dependency>
    <groupId>com.ibm.icu</groupId>
    <artifactId>icu4j</artifactId>
    <version>50.1.1</version>
</dependency>

Java代码


import com.ibm.icu.text.Collator;
import com.ibm.icu.util.ULocale;


// 对列表chineseList进行排序
Collections.sort(chineseList, (String s1, String s2) -> Collator.getInstance(ULocale.SIMPLIFIED_CHINESE).compare(s1 ,s2));

效果很好

参考: blog.csdn.net/fangletian1…