如何在java中逐个字符地反转字符串?

如何在java中逐个字符地反转字符串?,java,Java,让我们假设我有一个短语“美国银行”的字符串。我想将其反转,以便输出结果为aciremA fo knaB 这是我一直试图使用的代码,但输出只是最后一个单词的最后一个字母,这将是一个 int position = phraseLength; for(int index = position-1; index >= 0; index--); System.out.println(p1.charAt(position-1)); 我不确定这里出了什么问题,所以任何帮助都会被请求 在for循环之后添

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

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

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

我不确定这里出了什么问题,所以任何帮助都会被请求

在for循环之后添加了一个额外的分号

for(int index = position-1; index >= 0; index--);
                                                ^
而且你总是访问position-i。你应该访问索引

你可以用这个

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);

我猜你错把分号加在for循环后面了。实际上,这不会产生任何编译时错误。但是循环的内容将只执行一次。因此,删除分号并完成它

    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));

那是什么;在for循环之后?欢迎使用堆栈溢出!调试是所有程序员的关键技能。我强烈建议您学习如何使用IDE内置调试器。您还可以向代码中添加更多System.out.println语句,以查看发生了什么。还必须使用索引。这帮了大忙。它现在被字符颠倒了,但现在我有另一个问题。System.out.println在新行上打印每个字母,而System.out.print将其打印在一起,但与另一个输出在同一行上。@Ryan然后在循环前放置一个没有参数的System.out.println。获取其他字符串对象并将字符附加到它@它添加了一个空的输出行,并没有解决我的问题。无论如何,谢谢你。他也应该使用索引。循环在有分号或没有分号的情况下执行相同的次数。它只是在有分号的情况下循环是空的,除了减量和比较,所以没有明显的变化。如果要使用内置方法,则只执行一次的行是printlnyup+1这里最好使用StringBuilder。这里最好使用StringBuilder。
    int position = phraseLength;
    for(int index = position-1; index >= 0; index--)
        System.out.println(p1.charAt(index));
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);
}
StringBuffer stringBuffer=new StringBuffer("Bank of America");
System.out.println(stringBuffer.reverse());