需要帮助在java中创建一个基于en\u us.utf8规则的collator吗

jmo0nnb3  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(161)

我需要创建一个基于java的utf8编码基于规则的collator。我使用的是postgresql数据库,它的排序规则类型为en\u us.utf8,我需要在前端验证字符串数据排序。现有的java compareto()函数不能与postgresql order by使用的utf8编码一起工作。
目前,我使用的代码是

import java.lang.String;
import java.text.Collator;
import java.text.RuleBasedCollator;
import java.util.Locale;
public class CompareTo {

     public static void main(String[] args) {

        String str1 = "J'Nelle B. Ruscetti, PA";
        String str2 = "John C. Parker, M.D.";
            try {
        Collator collator =  new RuleBasedCollator("< a,A< \u00E1,\u00C1< b,B< c,C"
                            + "< \u010d,\u010c< d,D< \u0111,\u0110< e,E"
                            + "< f,F< g,G< h,H< i,I< j,J< k,K< l,L< m,M"
                            + "< n,N< \u014b,\u014a< o,O< p,P< r,R< s,S"
                            + "< \u0161,\u0160< t,T< \u0167,\u0166< u,U"
                            + "< v,V< z,Z< \u017e,\u017d");
                            collator.setStrength(Collator.IDENTICAL);

                        if(collator.compare(str1,str2)>0){
                            System.out.println(collator.compare(str1,str2));
                             System.out.println("sorting not working");
                        }
                        else {
                            System.out.println(collator.compare(str1,str2));
                             System.out.println("sorting working");
                        }
            }
            catch (final Exception pe) {
               System.out.println("failed");
            }         
    }
}

此规则不适用于上述输入。请指导/帮助我创建一个处理utf8编码的规则,以便根据基于utf8的比较验证显示在前端的字符串数据的排序。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题