如何在java中按字符反转字符串?

时间:2013-06-30 18:18:21

标签: java

假设我有一个短语“Bank of America”的字符串。我想反转它,所以输出结果是“aciremA fo knaB”

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

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

我不确定这里有什么问题,所以任何帮助都会被证实。

5 个答案:

答案 0 :(得分: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));

答案 1 :(得分: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);

答案 2 :(得分:0)

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

答案 3 :(得分: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);
}

答案 4 :(得分:0)

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