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的逆序
但是出来跟那个一样!
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的逆序
但是出来跟那个一样!
解决方案 »
- java网络编程高手请进!为什么用java获取到的网卡的名称是乱码?我改了字符编码还是乱码,有什么办法可以解决吗?
- 多核cpu如何防止死锁 饥渴
- jtable问题,我在jtable显示界面的下面加入“上一条”“下一条”“第一条”“到最后”按钮,当单击这些按钮时,jtable显示到指定行。
- Java2编程详解目前到第几版了?
- 关于树型分类的实现
- 请问如何获得汉字的拼音首字母?急。。。谢谢
- 连接UNIX下的SYBASE数据库问题?
- 向高手请教
- 求教了
- 请高手赐教,如何知道sql server 触发器是触发哪一种操作(insert,delete还是update)?
- 如何修改一个文件的最后修改日期
- swing监听器的问题
因为必须到一半了就停止。
也就是说,你之前有一次 比如 1和9交换了一次。后面。又1和9交换了一次。
应该在交换之前加个判断语句。
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;
}
}
刚才没认真看。所以回答错了。抱歉。不知你有没发现。那个是字符串有个定律。那就是内容不可改变性。你调查完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]字符串。
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();
}
}