JDK中的java.text.Collator 排序处理生僻字会失败,现引入新的Jar包进行处理。
引入icu4j进行处理,改包主要是为软件应用提供Unicode和全球化支持的一套成熟、广泛使用的C/C++和Java类库集
<!-- 通过Maven引入 -->
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>67.1</version>
</dependency>
package com;
import com.entity.Person;
import com.ibm.icu.util.ULocale;
import java.util.*;
public class SortPerson{
public static void main(String[] args) {
//厷(gōng)厸 (lín)厹(róu)厺(qù)叀(zhuān)
List<Person> list= new ArrayList<Person>();
Person person5 = new Person();
person5.setAge(9).setName("叀");
list.add(person5);
Person person3 = new Person();
person3.setAge(5).setName("厷");
list.add(person3);
Person person4 = new Person();
person4.setAge(7).setName("厸 ");
list.add(person4);
Person person = new Person();
person.setAge(1).setName("厹");
list.add(person);
Person person2 = new Person();
person2.setAge(3).setName("厺");
list.add(person2);
Collections.sort(list, new Comparator<Person>() {
public int compare(Person o1, Person o2) {
return com.ibm.icu.text.Collator.getInstance(ULocale.SIMPLIFIED_CHINESE).compare(o1.getName(), o2.getName());
}
});
list.forEach(p->{
System.out.print(p.getName()+"------>");
});
}
}
输出结果 :
//厷(gōng)厸 (lín)厹(róu)厺(qù)叀(zhuān)
厷------>厸 ------>厺------>厹------>叀------>