遇到了中文排序問題,比如想用拼音排序,
String[] strs = {"張三(Z)","李四(L)","王五(W)"};
//排序,預設是升序
Arrays.sort(strs);
發現排序結果是:張三(Z)","李四(L)","王五(W),後來看了下《高品質java 151個建議》
一書,發現找到了答案,原來是每一個字元采用uft-8編碼來比較,因為張排在李的前面,
是以就有這個答案了。是以建議使用的是compareto排序,如下:
String[] strs = {"張三(Z)","李四(L)","王五(W)"};
//定義一個中文排序器
Comparator c = Collator.getInstance(Locale.CHINA);
//升序排列
Arrays.sort(strs,c);