2012-04-17 21 views
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); 
    } 
} 

私の出力は明らかにそこにいくつかの余分なものがあります "helloellollolooolleh"です。どんな指針も大変ありがとう!

+1

+1ほとんど作っています:) –

+0

助けてくれてありがとう!私は再帰の使用を理解していません。基本ループははるかに簡単で便利です –

+0

再帰は基本的な概念です。それを理解することは非常に重要です。 –

答えて

4

strではなく、最初にstr.charAt(0)を試してみてください。

2

再帰は、再帰的なクローンに残りを委任する最大の怠け者です。 "Hello"では "H"のみを取り、 "ello"の鏡像の結果を得、両端で "H"で囲みます。

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); 
} 
+0

試しましたか? –

+0

しました。リクエストされたように "helloolleh"を出力します。実際に反転しているだけではなく、実際にはその名前を反映しているため、関数名を変更することができます。最高の実装ではないかもしれませんが、これはOP仕様で心に浮かんだ最初のものです。 編集:あなたのルビーソリューションを見ただけです。 lenght-1から始めて0で止まることを除いて、ほとんど同じです。 – Chris911

+0

うーん、私はロジックを全く得ていない、コードを実行する必要がありました。明らかにはい、それは動作します。 +1を取得する –

関連する問題