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));
效果很好