首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java中按汉字拼音排序时,只要有“怡”字,都是排最后的?为什么,该如何处理

2012-01-08 
java中按汉字拼音排序时,只要有“怡”字,都是排最后的????为什么importjava.io.UnsupportedEncodingExceptio

java中按汉字拼音排序时,只要有“怡”字,都是排最后的????为什么
import       java.io.UnsupportedEncodingException;          
    import       java.util.Arrays;          
    import       java.util.Comparator;      
    import       java.util.*;      
    import       java.util.Collections;      
       
    public       class       SortPinyin       {          
                    public       static       void       main(       String[]       args       )       throws       UnsupportedEncodingException       {          
                                    String[]       s       =       { "孙 ",       "孟 ",       "宋 ",       "尹 ",       "廖 ",       "张 ",       "张 ",       "张 ",       "徐 ",       "昆 ",       "曹 ",       "曾 ", "怡 "};          
                                    String[]       c       =       new       String[s.length];          
                                    for       (       int       i       =       0;       i       <       s.length;       i++       )       {          
                                                    c[i]       =       new       String(       s[i].getBytes( "gbk "),       "iso-8859-1 "       );          
                                    }          
                                    /*用数组排序      
                                    Arrays.sort(       c,       new       Comparator()       {          
                                                    public       int       compare(       Object       o1,       Object       o2       )       {          


                                                                    return       (       (       String       )       o1       ).compareTo(       (       String       )       o2       );          
                                                    }          
                                    }          
                                    );      
                                    */      
                                    //Arrays.sort(       c);      
       
                                    //用集合排序      
                                    List       list       =       new       ArrayList();      
                                    for       (int       i       =       0;       i       <       c.length;       i++)       {      
                                            list.add(c[i]);      
                                    }      
                                    Collections.sort(list);      
                                    for       (int       i       =       0;       i       <       c.length;       i++)       {      
                                            c[i]       =       (String)list.get(i);      
                                    }      
                                    for       (       int       i       =       0;       i       <       c.length;       i++       )       {          


                                                    String       cc       =       c[i];          
                                                    System.out.println(       new       String(       cc.getBytes(       "iso-8859-1 "       ),       "gbk "       )       );          
                                    }          
                    }          
    }
         














上网找了几个都是这样的


[解决办法]
。。。。。关注
[解决办法]
奇怪了。。。。。。。。。
[解决办法]
....学习...
[解决办法]
看看汉字编码,然后在看看你比较的方式,你就明白了。
[解决办法]
Java中汉字编码并非采用拼音编码方式的吧。
[解决办法]
知道么... 这就是我个人不太喜欢Java的原因之一...
[解决办法]
。。。。。拼音排序?这个也是不喜欢java的原因?那你讨厌.net的原因可就多啦

[解决办法]
ScriptBaby(Kanna·Naraku)

难道别的语言能把“怡”字排在前面?

这个是跟字符编码有关,因为字符的排序并不是安全按拼音顺序排序的

热点排行