要求排成这样:
1号
2号
3号
11号
22号结果排成这样:
11号
1号
22号
2号
3号怎么实现?

解决方案 »

  1.   

    在数据库中 还是  在业务逻辑曾 排序阿?
       如果是在数据库中的话
      直接用substring 截取第一个字符  进行 排序就可以了啊  
      

  2.   

    clojure -e '(sort-by #(Integer/parseInt (.substring % 0 (dec (count %))))  ["1号" "2号" "3号" "11号" "22号"])'
      

  3.   

    lz先将“号”全部去掉,组成一个int[],再排序,或者按照ASCII码排序
      

  4.   


    public static void main(String[] args) {
    String[] a = {"1号","12号", "号21", "a33号","b9号"};
    Arrays.sort(a, new Comparator<String>(){
    public int compare(String s1, String s2) {
    int ai = Integer.parseInt(s1.replaceAll("[^0-9]*",""));
    int bi = Integer.parseInt(s2.replaceAll("[^0-9]*",""));
    if(ai > bi)
    return 1;
    else if(ai == bi)
    return 0;
    else
    return -1;
    }

    });
    for(String str : a){
    System.out.println(str);
    }
    }