2011-12-16 5 views
0
public class recursionExcercise4 
{ 

    public static void main (String[] args) 
    { 
    boolean statement=false; 
    String ch=""; 
    String a="I am bubbles who is a little slugger and loves apple and yellow." 
    BacktoBacks(a,ch,statement); 
    } 

    public static void BacktoBacks(String sentence, String ch, boolean statement) 
    { 
    String newLine="",word=""; 
    System.out.print(sentence.charAt(0)); 
    if(sentence.charAt(0)=='.') System.out.println(); 

    if(sentence.length()>1) 
    { 
     int num=sentence.substring(1).indexOf(" "); 
     word = sentence.substring(0,num); 
     System.out.println(word); 
    } 
    BacktoBacks(newLine,ch,statement); 
    } 
} 

これはコードです。単純な再帰の問題戻る方法

if文のループ内の行が私によって追加されたため、変更することはできますが、それ以外は変更することはできません。一番上のifステートメントはそこに残る必要があります。また、私はそれがあまりにも簡単にループを回避しようとしています。これを行う方法は?私はそれを試しましたが、助けが必要です。

目的は、文字列の2文字の単語を印刷することです。これは後方にも印刷する必要があります。したがって、このように:

イエロー アップル スラッガー リトル バブル

あなたのヘルプははるかに高く評価されます。 ありがとうございます!

+1

「宿題」のようなにおいがします。もしそうなら、そのようにタグを付けてください。 – Bohemian

+0

@ボヘミアンそれについての複数の意見があります:http://meta.stackexchange.com/questions/34503/should-the-possible-homework-tag-be-discouraged –

+0

"if(line.length()> 1 ) "間違っている。 「ライン」とは何ですか?変数 "行"の参照はありません。 if文を変更できないのは本当ですか? – Skyd

答えて

2

だからあなたは、単語が二重の文字が含まれているかどうかをチェック

public boolean hasDoubleLetters(String word){ 
    // test 
} 

し、その結果に基づいて、再帰呼び出しの後に単語を印刷する機能を必要としています。そして、再帰呼び出しに正しい引数を渡さなければなりません。

+0

助けてくれてありがとうが、私はそれをすることができないので、各単語を印刷する必要があります。どのようにどのような提案? – DemCodeLines

+0

できないことはありますか?二重字のテストですか?連続した文字の各ペアを見て、それらが等しいかどうかを確認します(大文字と小文字は無視されます)。 –

+0

再帰部分が機能していません。それぞれの言葉をプリントアウトするのを手伝ってください。私はコードがif(statement.length()> 1)ステートメントの中に入るべきであることを知っています。私はあなたが私の仕事をするためにここにいないことを知っています。私は本当にあなたの助けに感謝します。再帰がうまく動作するように手伝ってください。上の例のような文字列から各単語を出力します。私は自分で二重の文字部分を管理することができます。私はあなたの助けに大変感謝しています。ありがとうございました – DemCodeLines