一个小程序,就是想将输入的字符串数组逆置,比如,编译运行java Test This is a test应该输出,tset a si sihT,程序总报错,大家帮忙给看看吧
[code="java"]
public class Test {
public static void main(String[] args) {
for(int i=args.length-1;i>=0;i--){
StringBuffer sb=new StringBuffer(args[i]);
System.out.print(Test.reverse(sb)+" ");
}
}
public static String reverse(StringBuffer str){
char c;
int i,j;
for(i=0,j=str.length()-1;i<j;i++,j--){
c=str.charAt(i);
str.charAt(i)=str.charAt(j);
str.charAt(j)=c;
}
return str.toString();
}
}
[/code]
[b]问题补充:[/b]
我的意思是我的程序错在什么地方了,用其它的方法我会
str.charAt(i)=str.charAt(j);
str.charAt(j)=c;
赋值表达式左边只能是变量!不能是其它的!
上面不就有答案嘛,http://www.iteye.com/topic/253602
逆序输出 搞得这么麻烦?我帮你写个
[code="java"]
...
public void pring_Str(String s){
for(int i = s.length-1 ; i>=0 ; i-- ){
System.out.print(s.charAt(i));
}
}
...
[/code]
str.charAt(i)=str.charAt(j);
str.charAt(j)=c;
这两句错了
注意:类型和赋值
补充:
可以这样
public static void main(String[] args) {
String te="this is for test";
StringBuffer sb=new StringBuffer(te);
for(int i=te.length()-1;i>=0;i--){
System.out.print(sb.charAt(i));
// System.out.print(Test.reverse(sb)+" ");
}
}
[quote]str.charAt(i)=str.charAt(j);
str.charAt(j)=c;
赋值表达式左边只能是变量!不能是其它的!
sntaco (初级程序员) 2008-11-26 [/quote]
就是这个啊,把你的代码往eclipse里一贴就看出来了啊
[code="java"]public class Test {
public static void main(String[] args) {
for(int i=args[0].length()-1;i>=0;i--){
System.out.print(args[0].charAt(i));
}
}
}[/code]
这样,执行的时候:java Test "This is a test"
等于是只传了一个参数