Java 如何将字符串从temp分配到returnString?

Java 如何将字符串从temp分配到returnString?,java,string,loops,for-loop,Java,String,Loops,For Loop,目标是反转当前字符串。我知道有更简单、更有效的方法来反转字符串,但我们必须想出自己的赋值方法 temp被分配字符串中的最后一个字符,然后是倒数第二个字符,然后是倒数第三个字符,等等,一次分配一个字符。我需要弄清楚如何将这些单独的字符串按与原始字符串相反的顺序分配给returnString String current = "Reverse this string."; String returnString; for (int i = 1; i <= current.length(); +

目标是反转当前字符串。我知道有更简单、更有效的方法来反转字符串,但我们必须想出自己的赋值方法

temp
被分配字符串中的最后一个字符,然后是倒数第二个字符,然后是倒数第三个字符,等等,一次分配一个字符。我需要弄清楚如何将这些单独的字符串按与原始字符串相反的顺序分配给
returnString

String current = "Reverse this string.";
String returnString;
for (int i = 1; i <= current.length(); ++i) {
    String temp = current.substring(current.length() - i, current.length() - i + 1);
    returnString = ??? 
}
String current=“反转此字符串。”;
字符串返回字符串;

对于(int i=1;i您需要以空字符串开头,因此:

String returnString = "";
然后将字符串
temp
附加到它:

returnString = returnString + temp;
+
运算符连接字符串

x=x+a
有一个缩写:
x+=a
,因此您可以编写:

returnString += temp;
请注意,这是低效的,因为每次使用
+
+=
时都会创建一个新字符串——使用
StringBuilder
可以获得更有效的解决方案,因为它有一个字符缓冲区,在追加时会进行修改,而不是在字符串对象内创建全新的缓冲区。

一种方法g it(仍然效率低下):

其工作原理是按顺序从输入字符串中提取每个字符,并将其添加到结果字符串的开头。因此,最终,输入的最后一个字符将添加到输出的开头

例如:

Input: "abc"

Loop 1:
    returnString = "a"

Loop 2:
    returnString = "ba"

Loop 3:
    returnString = "cba"

您可以尝试只使用数组

    String current = "Reverse this string.";
    char c[] = current.toCharArray();
    char out[] = new char[c.length];

    int index = 0;
    for (int i = c.length -1; i >= 0; i--) {
        out[index++] = c[i];
    }
    String str = new String (out);
    System.out.println(str);
输出

.gnirts siht esreveR

returnString+=temp;
可以,但效率很低。我建议使用
StringBuilder
我认为效率不是他想要的。只是功能为什么不使用
String.charAt()
?或者这是你不想使用的“更简单、更高效的方法”的一部分?
.gnirts siht esreveR