質問する
2749 次
2 に答える
3
なぜ違うの?表意文字または単語全体を並べ替えるには、いくつかの異なる方法があるためです。私の心に残っているのは:
- ストローク数による
- ラテン語の音訳を使用し、それを「自然に」注文する(もちろん、中国語に固有の規則に従って)
他の方法もあります。たとえば、Unicodeテクニカルレポート#35には、それらのいくつかが記載されています(偶然の一致であり、意図的に必要ではありません)が、それを実行するには十分な時間が必要です。
質問に答えるために、これらの並べ替え順序が異なる理由については、Javaに独自の照合ルールが含まれており、(Excelのように)オペレーティングシステムのルールに依存していないためです。これらのルールは異なる場合があります。また、JavaのクラスとルールのソースであるICUを試してみることもできます(通常、JDKよりも一歩進んでいます)。
于 2012-11-08T20:15:40.790 に答える
3
Java 6 または 7 には、中国語を最初のサンプルと同じ順序でソートする Collator はありません。
public static void main(String... args) {
String text1 = "啊<波<词<的<俄<佛<歌<和<及<课<了<馍<呢<票<气<日<四<特<瓦<喜<以<只";
findLocaleForSortedOrder(text1);
String text2 = "啊<波<词<的<俄<佛<歌<和<及<课<了<呢<票<气<日<四<特<瓦<喜<以<只<馍";
findLocaleForSortedOrder(text2);
}
private static void findLocaleForSortedOrder(String text) {
System.out.println("For " + text + " found...");
String[] preSorted = text.split("<");
for (Locale locale : Collator.getAvailableLocales()) {
String[] sorted = preSorted.clone();
Arrays.sort(sorted, Collator.getInstance(locale));
if (Arrays.equals(preSorted, sorted))
System.out.println("Locale " + locale + " has the same sorted order");
}
System.out.println();
}
版画
For 啊<波<词<的<俄<佛<歌<和<及<课<了<馍<呢<票<气<日<四<特<瓦<喜<以<只 found...
For 啊<波<词<的<俄<佛<歌<和<及<课<了<呢<票<气<日<四<特<瓦<喜<以<只<馍 found...
Locale zh_CN has the same sorted order
Locale zh has the same sorted order
Locale zh_SG has the same sorted order
于 2012-11-08T09:30:43.177 に答える