Java 中 stringBuilder.append().charAt 的问题

Problems with stringBuilder.append().charAt in Java

我知道它存在,但我的老师要我手动做我正在尝试反转我的 stringBuilder 以便我里面的字符按相反的顺序排列,有时 stringBuilder 是单个字符,即为什么如您所见,有一个 if 指示何时应翻转 stringBuilder 的字符。这就是我目前的情况。

if ( sB.length ()> 1) {
    for (int i = sB.length () - 1; i> = 0; i--) {
        sB.append().charAt(i);
        sB.deleteCharAt (i); 
    }
}

我知道 sB.reverse() 存在,但我的老师要我手动完成,你怎么看我不知道如何同时实现这两种方法。如果有人可以帮助我,请。谢谢!

如果你想反转字符串为什么不使用

StringBuilder str = new StringBuilder();
str.append("yourstring");
str.reverse();

使用此代码手动完成。

public class Reverse {
public static void main(String args []) {
    String rev = "This should be reversed";
    StringBuilder stb = new StringBuilder();
    int i = rev.length()-1;
    while (i != -1) {
            char re = rev.charAt(i);
            stb.append(re);
            i--;
        }
        System.out.println(stb);
    }
}

如果不允许使用 reverse() 方法,则两个两个交换

StringBuilder sb = new StringBuilder("abcde");
for (int i = 0; i < sb.length()/2; i++) {
    char tmp = sb.charAt(i);
    sb.setCharAt(i, sb.charAt(sb.length() - 1 - i));
    sb.setCharAt(sb.length() - 1 - i, tmp);
}
System.out.println(sb.toString());

那么在那种情况下使用这个

StringBuilder str = new StringBuilder();
str.append("yourstring");
for(int i = str.length()-1 ; i>=0; i--)
{
    str.append(str.charAt(i)).deleteCharAt(i);
}