JAVA:帮助修复递归函数

How*_*can 0 java recursion

我必须使用递归来解决这个问题,我设法让它很快就能使用循环,但是我有点困惑于此.我目前的代码是

public static String ReverseR(String n){
    String finalstring="";
    int i = 0;
    int len = n.length();
    while (i < len) {
        finalstring += (n.charAt(len -  1));
        ReverseR(n.substring(0, len - 1));
        i++;
    }
    return finalstring;
}
Run Code Online (Sandbox Code Playgroud)

当我输入任何字符串时,结果字符串的长度是正确的,但只使用最后一个字母.例:ReverseR("你好")= ooooo有什么想法吗?

ilu*_*uxa 5

递归有点像归纳证明.

  1. 摆脱while循环
  2. 如果您正在反转0个字符的字符串,那很容易:只返回""
  3. 如果要反转n个字符的字符串,则反转[0..n-2]并添加最后一个字母.你已经在做什么了.

  • 还"记住java中的字符串不可变,你需要_return_修改后的字符串" (2认同)