比如s1 = "P_0_0" s2="P_0_1" s3="P_2_0" s4="T_1_1" s5="T_1_0"
希望的结果是
P_0_0
P_0_1
P_2_0
T_1_0
T_1_1先按字母排 P排在T前面 再按第2位排 数字可能是0到9 从小到大排 再按第3位排 第3位只可能是0或者1 , 求如何实现

解决方案 »

  1.   

    public class SortStringTest {
        public static void main (String [] Args){
            if(Args != null && Args.length != 0){
                Arrays.sort(Args);
                for(int i = 0 ; i < Args.length ; i ++ ){
                    System.out.println("-----> " + Args [i] );
                }
            }
        }
    }
      

  2.   

    Array(a[]);a[]是你要排序的数组
      

  3.   


    import javax.swing.*;
    import java.util.Arrays;
    public class SwingDemo extends JFrame
    {
    public static void main(String[] args) {
    String []s ={"T_1_0","T_1_1","P_2_0","P_0_0","P_0_1"};
    Arrays.sort(s);
    for(int i=0;i<s.length;i++)
    System.out.println(s[i]);
    }
    }
    给分!!!!
      

  4.   

    修改一下。不好意思。如果这些数据都是放在MAP里面的KEY。不是字符窜里面。如何排序。答案出来马上给分
      

  5.   

    那使用TreeMap或者使用当前map构造一个TreeMap就可以按顺序访问了
      

  6.   

    lz的要求似乎根本无法实现。TreeMap 好像并不是排序吧,而是指按照你当时put的顺序,保存数据的吧?
      

  7.   

    存放在MAP的数值是有序的吗?
    不过不是说不能实现!应该可以做另外一个方法~调用就好了~在调用的方法里排序
      

  8.   

    好一个 Arrays.sort(Args);
    旁听
      

  9.   

    youthon(可乐可口) 是正解啊
    跑一下就知道了 ;)
    Map testMap = new HashMap();
    for(int i = 100 ; i >= 0; i -- ){
        if(i%2 == 0){
            testMap.put("P" + i,"w --" + (100 -i));
        }else {
            testMap.put("T" + i,"w --" + (100 -i));
        }
    }
    TreeMap aa = new TreeMap (testMap);
    Iterator mapIterator = aa.keySet().iterator();
    while(mapIterator.hasNext()){
        String name = (String) mapIterator.next();
        System.out.println("the name == " + name + "--value==" + aa.get(name));
    }