3)字符串由多个数字字符串和空格组成,如:
    String str="99 345 8 888 55 0 -9999 30";
请编写将字符串中数字字符串按数值大小升序排序,组成新的字符串:
例如,以上例中的str作为参数,返回结果:"-9999 0 8 30 55 99 345 888" 提示:StringTokenizer
我写了一个例子,但是想用命令行穿参数不太会,大家帮忙看看 谢谢
public class B{    
   public static void sortNumStr(String arg){
       String[] args=arg.split(" ");
       for(int i=0;i<args.length;i++){
           for(int j=0;j<args.length-i-1;j++){
               int a=Integer.parseInt(args[j]);
               int b=Integer.parseInt(args[j+1]);
               if(a>b){
                   a=a^b;
                   b=a^b;
                   a=a^b;
               }
               args[j]=String.valueOf(a);
               args[j+1]=String.valueOf(b);
           }
       }
       for(int i=0;i<9;i++){
       System.out.print(args[i]+",");
       }
   }
   public static void main(String[] args)
   {
   sortNumStr("99 345 8 888 55 0 -9999 30");
   }  
}

解决方案 »

  1.   

    public class B {
       public static void sortNumStr(String[] args) {
           for (int i = 0; i < args.length; i++){
               for (int j = 0; j < args.length - i - 1; j++) {
                   int a = Integer.parseInt(args[j]);
                   int b = Integer.parseInt(args[j+1]);
                   if (a > b) {
                       a = a ^ b;
                       b = a ^ b;
                       a = a ^ b;
                   }
                   args[j] = String.valueOf(a);
                   args[j+1] = String.valueOf(b);
               }
           }
           for (int i = 0; i < args.length; i++){
               if (i > 0) {
                    System.out.print(", ");
               }
               System.out.print(args[i]);
           }
       }
       public static void main(String[] args) {
            sortNumStr(args);
       }
    }运行时这样用:java B -9999 0 8 30 55 99 345 888-9999 就是 main 参数中的 args[0]
    0 就是 args[1]
    ......