中国省份按照拼音排序出现的问题以及临时解决方案

原始需求:是这样子,我这边有一个功能,就是从别处读取到的省份列表,把它填充在下拉列表里面,需求那边需要按照汉子的拼音来排序,

出现问题:出现的“重庆市”始终是按照ZHONG的拼音来排序,而不是按照CHONG的拼音来排序,在网上没有找到比较好的解决方案,

备     注:原来的数据排序是直辖市排在最前面,剩下省份随意排序

临时方案

        List<String> list = new ArrayList<String>();
        list.add("北京市");
        list.add("天津市");
        list.add("上海市");
        list.add("重庆市");
        list.add("河北省");
        list.add("山西省");
        list.add("辽宁省");
        list.add("吉林省");
        list.add("黑龙江省");
        list.add("江苏省");
        list.add("浙江省");  
        list.add("安徽省"); 
        list.add("福建省"); 
        list.add("江西省"); 
        list.add("山东省"); 
        list.add("河南省");
        list.add("湖北省"); 
        list.add("湖南省"); 
        list.add("广东省");  
        list.add("海南省");
        list.add("四川省"); 
        list.add("贵州省");  
        list.add("云南省"); 
        list.add("陕西省"); 
        list.add("甘肃省"); 
        list.add("青海省");  
        list.add("台湾省");
        list.add("内蒙古自治区");  
        list.add("广西壮族自治区"); 
        list.add("西藏自治区"); 
        list.add("宁夏回族自治区"); 
        list.add("新疆维吾尔自治区");  
        list.add("香港特别行政区"); 
        list.add("澳门特别行政区");
        
        List<String> listNew = new ArrayList<String>();
        for (String stringOld : list) {
            if(stringOld.indexOf("重") >= 0){
                stringOld = stringOld.replaceAll("重", "冲");
            }
            listNew.add(stringOld);
        }
        
        Collections.sort(listNew, new ToSort());  
        for (String stringNew : listNew) {
            if(stringNew.indexOf("冲") >= 0){
                stringNew = stringNew.replaceAll("冲", "重");
            }
            System.out.println(stringNew);
        }

我这里采取的替换方式来处理这个重庆的排序

posted @ 2016-08-13 19:34  一世尘梦(Aion)  阅读(1655)  评论(0编辑  收藏  举报