当前位置: 首页 > 工具软件 > JoSQL > 使用案例 >

josql 中文排序

宇文智敏
2023-12-01
josql 不支持中文排序,可能是我没有找到,由于在网上没有找到所以写一个分享给大家。一种办法是重写他内部类Utilities,这个类是用来对数据做最终那个排序的。

private static Collator collator = Collator.getInstance(java.util.Locale.CHINA);

//验证是否为汉字
public static boolean parseUtensil(Object o){
if (o==null) {
return false;
}
String verdict ="([\u4E00-\u9FA5]*)";

Matcher matcher = null;

try {

Pattern pattern = Pattern.compile(verdict);

matcher = pattern.matcher(o.toString());
return matcher.matches();
} catch (PatternSyntaxException e) {
return false;
}
}

修改compare方法在下面if语句中的内容

if((o1 instanceof Comparable) && (o2 instanceof Comparable) && o1.getClass().isAssignableFrom(o2.getClass()))

修改为

if(parseUtensil(o1) && parseUtensil(o2)){
return collator.getCollationKey(o1.toString()).compareTo(collator.getCollationKey(o2.toString()));
}else{
return ((Comparable)o1).compareTo((Comparable)o2);
}
 类似资料: