public class Exchange{
public static void main(String[]args){
String[]a=new String[args.length];
for(int i=0;i<args.length;i++){
a[i]=args[i];
}

print(a);
change(a);
print(a); }
public static void change(String[]a){
for(int i=0;i<a.length/2-1;i++){
String temp=a[i];
a[i]=a[a.length-1];
a[a.length-1]=temp;
}
}
public static void print(String[]a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
System.out.println();
}
} 然后javac exchange.java
java exchange i love you
我想让他显示iloveyou的逆序
但是出来跟那个一样!

解决方案 »

  1.   

    change 方法有问题。
    因为必须到一半了就停止。
    也就是说,你之前有一次 比如 1和9交换了一次。后面。又1和9交换了一次。
    应该在交换之前加个判断语句。
      

  2.   

    public static void change(String[]a){
    for(int i=0;i<a.length/2-1;i++){
    String temp=a[i];
    a[i]=a[a.length-1-i];
    a[a.length-1-i]=temp;
    }

      

  3.   

    刚刚粘贴粘错了~~我的change方法跟二楼的一样~~~
      

  4.   

    问题出来了。不是算法的问题。
    刚才没认真看。所以回答错了。抱歉。不知你有没发现。那个是字符串有个定律。那就是内容不可改变性。你调查完change方法后。
    你a数组的内容还是不会变的。
    但是你讲print的方法放在change的最后面。就可以看到正确结果了。public class Exchange{
    public static void main(String[]args){
    String[]a=new String[args.length];
    System.out.println("长度;"+args.length);
    for(int i=0;i<args.length;i++){
    a[i]=args[i];
    }
    print(a);
    change(a);
    }
    public static void change(String[]a){
    String temp;
    for(int i=0;i<a.length/2-1;i++){
    temp=a[i];
    a[i]=a[a.length-1];
    a[a.length-1]=temp;
    }
    print(a);
    } public static void print(String[]a){
    for(int i=0;i<a.length;i++){
    System.out.print(a[i]);
    }
    System.out.println();
    }
    }还有一点特别说明的。你如果使用 java命令传递参数给args的话。那么每个成员需要用 空格隔开。
    否则永远只有一个args[0]字符串。
      

  5.   

    最终正确代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!public class Exchange{
    public static void main(String[]args){
    String[]a=new String[args.length];
    for(int i=0;i<args.length;i++){
    a[i]=args[i];
    }
    print(a);
    change(a);
    }
    public static void change(String[]a){   //改变此a数组并不会改变原a数组             
    String temp;
    for(int i=0;i<(a.length/2);i++){
    temp=a[i];
    a[i]=a[a.length-1-i];
    a[a.length-1-i]=temp;
    }
    print(a);  //在这边输出才能得到准确结果。
    } public static void print(String[]a){
    for(int i=0;i<a.length;i++){
    System.out.print(a[i]);
    }
    System.out.println();
    }
    }