Java 中文排序

Java 中文排序, 範例參考如下 :
 程式碼
public class HelloWorld {
    public static void main(String[] args)
    {
        String[] vDataTemp = {"xyz", "幸運女神", "鋼彈", "柯南", "哆啦A夢", "TomKuo", "張三", "李四", "123", "abc", "12345"};
        String vDataSortTemp;
       
        // 按筆畫排序 (TRADITIONAL_CHINESE 按筆畫排序, SIMPLIFIED_CHINESE 按拼音排序)
        Comparator comparator = Collator.getInstance(Locale.TRADITIONAL_CHINESE);
       
        // 方式 1: 用 Java 內建函數 (簡單, 但量大排序較慢)
        Arrays.sort(vDataTemp, comparator);
       
        // 方式 2: 用傳統方法 (程式碼較多點, 但量大排序較快)
        for( int i = 0; i < vDataTemp.length; i++ )
            for( int j = i; j < vDataTemp.length; j++ )
            {
                if( comparator.compare(vDataTemp[i], vDataTemp[j]) > 0 )
                {
                    vDataSortTemp = vDataTemp[j];
                    vDataTemp[j] = vDataTemp[i];
                    vDataTemp[i] = vDataSortTemp;
                }
            }
       
        // 顯示陣列結果
        for( int i = 0; i < vDataTemp.length; i++ )
            System.out.println(vDataTemp[i]);
    }
}
 
// 結果顯示 :
123
12345
abc
TomKuo
xyz
李四
幸運女神
柯南
張三
鋼彈
哆啦A夢

 疑惑
疑惑 1:
"哆" 比 "鋼" 筆畫少, 不知為何排序在其後
 
疑惑 2:
在 Java 排序正常, 但在 Android 排序就變成如下, 亂啊
123
12345
哆啦A夢
李四
鋼彈
柯南
幸運女神
張三
abc
TomKuo
xyz
Related Posts Plugin for WordPress, Blogger...