java.text.Collator&字元串比較&中文排序
預設情況下,字元串的比較使用字元串包含字元的ASCII碼來比較。
java.text.Collator使用字元串包含字元在指定語言的自然順序(譬如中文漢字的自然順序)做比較。是locale敏感的。
如果隻比較純英文,那麼就不需要使用collator。一般情況下我們直接使用Collections.sort()來執行排序操作、或者根據字元的ASCII碼來排序。但是,如果其中包含一些特殊字元如é、中文漢字,那邊使用collator和預設的collections.sort排序結果并不一緻。
補充:
其實不光是java,所有語言在排序時都會有這樣的“問題”,例如在js中,如果使用預設的排序會出現下面現象:
var o = ["廣州","深圳","東莞","中山","順德","佛山"];
var l = o.sort();
輸出的結果是:東莞,中山,佛山,廣州,深圳,順德;
如果使用了下面的方式: