0

假设我有一个带有短语“美国银行”的字符串。我想反转它,所以输出结果为“aciremA fo knaB”

这是我一直在尝试使用的代码,但输出只是最后一个单词的最后一个字母,即“a”

int position = phraseLength;
for(int index = position-1; index >= 0; index--);
System.out.println(p1.charAt(position-1));

我不确定这里出了什么问题,所以会有任何帮助。

4

5 回答 5

4
    StringBuffer sb=new StringBuffer("Bank of America");
    System.out.println(sb.reverse());

如果你想按照自己的方式去做。利用

    int position = phraseLength;
    for(int index = position-1; index >= 0; index--)
        System.out.println(p1.charAt(index));
于 2013-06-30T18:23:05.777 回答
3

您在此处的 for 循环后添加了一个额外的分号

for(int index = position-1; index >= 0; index--);
                                                ^

此外,您总是在访问postion-i. 您应该访问index

System.out.println(p1.charAt(position-1));
                             ^^^^^^^^^^^
                                here

你可以用这个

int position = phraseLength;
for(int index = position-1; index >= 0; index--)
    System.out.print(p1.charAt(index));

或这个

String output = "";
int position = phraseLength;
for(int index = position-1; index >= 0; index--)
    output+=p1.charAt(index);
System.out.println(output);
于 2013-06-30T18:19:19.507 回答
0

我猜你错误地添加了semicolonafter for 循环。实际上这不会给任何compile time error. 但是循环的内容只会被执行一次。所以删除分号并完成它!

于 2013-06-30T18:22:44.610 回答
0
public String reverse(String str) {   
 char [] buffer = str.toCharArray();

 for (int i = 0, j = buffer.length - 1; i < j; i++, j--) {
  char temp = buffer[i];
  buffer[i] = buffer[j];
  buffer[j] = temp;
 }

 return new String(buffer);
}
于 2013-06-30T18:28:42.203 回答
0
StringBuffer stringBuffer=new StringBuffer("Bank of America");
System.out.println(stringBuffer.reverse());    
于 2013-06-30T18:33:34.473 回答