1

文字列をパラメーターとして受け取り、ミラーリングされた形式で単語​​を出力するメソッドを作成する必要があります。たとえば、「hello」は「helloolleh」を返す必要があります。再帰を使用する必要があり、for ループを使用できません。これまでの私のコードは次のとおりです。

public static String printMirrored(String str)
{
    if(str == null || str.equals(""))

    {
        return str;
    }
    else
    {
        return str + printMirrored(str.substring(1)) + str.charAt(0);
    }
}

私の出力は「helloellolloloolleh」で、明らかに余分なものが含まれています。どんなポインタでも大歓迎です!

4

4 に答える 4

4

str.charAt(0)の代わりに最初に使用してみてくださいstr

于 2012-04-17T23:14:02.673 に答える
2

再帰とは、残りを再帰クローンに委任する最も怠惰な人になることです。したがって、「Hello」では、「H」のみを取得し、「ello」のミラーリングされた結果を取得し、両端を「H」で囲みます。

于 2012-04-17T23:18:29.677 に答える
2

これを本当に素早く書いた。あなたが望むことを正確に行う必要がありますが、質問がある場合はお知らせください。

String word = "hello";
System.out.println(reverseWord(word, word.length()));

public static String reverseWord(String word, int length) {
    if(length == 0)
        return word;
    else
        return reverseWord(word + word.charAt(length - 1), length - 1);
}
于 2012-04-17T23:32:55.410 に答える
0

StringBuilder.reverse()を使用する

于 2012-04-17T23:22:35.407 に答える