2

このコードは、渡された文字列パラメーターを逆にします。文字列が不変であることは知っています。何が起こっているのか理解していないようです。返された逆文字列はどこに保存されますか。

public static String reverseRecursively(String str) {

    //base case to handle one char string and empty string
    if (str.length() < 2) {
        return str;
    }

    return reverseRecursively(str.substring(1)) + str.charAt(0);

}
4

3 に答える 3

1

返された逆文字列はどこに保存されますか。

メソッドが示すように、それ自体を再帰的に呼び出します。呼び出されるたびに、エントリがコール スタックに追加されます。したがって、これらの「中間」結果がどこに保存されるかについての魔法に関心がある場合は、呼び出しスタックがどのように機能するかについて読んでください。

于 2013-10-20T06:47:27.360 に答える
1

呼び出されるたびにreverseRecursively(str.substring(1)) + str.charAt(0)新しいオブジェクトを作成します。String

于 2013-10-20T06:45:11.380 に答える