If the first character is Chinese, make a positive sequence list and make pages.
private String getListInPages(Page<RoomDeviceTypeEntity> page, JSONObject pageObject, List<RoomDeviceTypeEntity> list) {
Comparator comparator = Collator.getInstance(Locale.CHINA);
Collections.sort(list, new Comparator<RoomDeviceTypeEntity>() {
@Override
public int compare(RoomDeviceTypeEntity o1, RoomDeviceTypeEntity o2) {
String name1 = o1.getName();
String name2 = o2.getName();
char[] chars1 = name1.toCharArray();
char[] chars2 = name2.toCharArray();
if (isChineseChar(chars1[0]) && isChineseChar(chars2[0])){
return comparator.compare(o1.getName(), o2.getName());
}else{
return 0;
}
}
});
pageObject.put(Constants.PAGE_ROWS, list);
pageObject.put(Constants.PAGE_TOTAL, page.getTotal());
return JsonUtil.getSucc(pageObject);
}
Determine if the string is Chinese Character
public boolean isChineseChar(char c){
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT) {
return true;
}
return false;
}