在java中排序日语数据

时间:2013-12-16 13:27:03

标签: java api sorting multilingual

我需要对日语字符串列表进行排序。截至目前,我正在使用Java的Collat​​or API。这对所有语言都很好。但对于日语而言,它没有给出预期的结果。
我怎样才能实现这个?

`Collator collator = Collator.getInstance(Locale.JAPAN);
        collator.setStrength(Collator.PRIMARY);
        Collections.sort(Words, collator);`

这里的单词是日语字符串列表。

2 个答案:

答案 0 :(得分:0)

我得到了这个问题的解决方案,但这不是一个可行的解决方案。 在这种情况下,我需要更多自定义整理规则。Here它的解释很好。

答案 1 :(得分:0)

日本有三个,我会确保你使用正确的语言环境。 (它们可能是同一个Collat​​or的别名)

    final Locale[] availableLocales = Collator.getAvailableLocales();
    Arrays.sort(availableLocales, new Comparator<Locale>() {
        @Override
        public int compare(Locale o1, Locale o2) {
            return o1.toString().compareTo(o2.toString());
        }
    });
    for(Locale locale : availableLocales)
        System.out.println(locale) ;

打印

AR ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE 是 be_BY BG bg_BG CA ca_ES CS cs_CZ DA da_DK 德 de_AT 将de_CH de_DE这个 de_LU 埃尔 el_CY el_GR 恩 EN_AU en_CA EN_GB en_IE en_IN en_MT en_NZ en_PH en_SG EN_US en_ZA ES es_AR es_BO es_CL ES_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE 等 et_EE 科幻 fi_FI FR fr_BE fr_CA fr_CH表示 fr_FR目录 fr_LU GA ga_IE hi_IN 小时 hr_HR 胡 hu_HU 在 in_ID 是 伊斯兰国 它 痒 it_IT IW iw_IL 的 JA Ja_JP表示 ja_JP_JP_#U-CA日 KO ko_KR LT lt_LT LV lv_LV MK mk_MK 女士 ms_MY 公吨 mt_MT NL nl_BE nl_NL 没有 不,不 no_NO_NY PL pl_PL PT pt_BR表示 PT_PT RO ro_RO RU ru_RU SK sk_SK SL sl_SI 平方 sq_AL SR sr_BA sr_BA_#LATN sr_CS sr_ME sr_ME_#LATN sr_RS sr_RS_#LATN SR __#LATN SV sv_SE 日 th_TH th_TH_TH_#u型NU-泰 TR tr_TR 联合王国 uk_UA 六 vi_VN ZH zh_CN的 了zh_HK zh_SG zh_TW的