再帰的に入力された文字列が回文であるかどうかを判断します

設計:入力文字列の導入スキャナタイプは、文字列は文字の配列に入り、文字数が読み取ることがあれば文字が返される場合に文字Chu系列比較の列の左右両側には、同一の、同じ再帰リターンであります数==入力文字列の長さは、文字列がパリンドローム出力され、文字列の出力はパリンドロームではありません

 

インポートjava.util.Scanner; 

パブリック クラスTEST1 { 

    公共 静的 ボイドメイン(文字列[]引数){
         // TODO自動生成されたメソッドスタブ 
        スキャナ入力= 新しい新しいスキャナ(System.in); 
        文字列A = input.nextLine()。
         char型 [] TEMP = a.toCharArray();         
         int型 C =ファン(0 ,. 1- temp.length 、TEMP);
         IF(C == temp.length)
            のSystem.out.println(「文字列はパリンドロームであります「);
         
            のSystem.out.printlnは(」string "は回文ではありません); 
        Input.close(); 
    } 

    パブリック 静的 INTファン(int型、Iをint型 Jは、char型 [] A){    // 文字列はパリンドロームであるかどうかを決定するために関数の定義を
        
        IF(J == I)      // 文字列の長さ奇数
            リターン 1。;
          のiF(I - J == 1)   // 文字列の長さは、偶数である
            戻り 0 ;
         他の{
             IF([I]は[J] ==)         // 決定文字の両側で同じです
            { 
                私は ++ ; 
                Jを -;
                 戻り値(2 +楽しい(I、J、A));   // 再帰呼び出し機能
            }
             他に
                返す -100;   // 両側の文字が直接エンドを呼び出していない場合
        } 
    } 
}

 

経験:再帰が徹底的に十分な理解がないために、再帰を終了するための主な条件は明確ではないので初めは、常に彼らは通話を終了することができます前にブレークを追加すると考えられ、以降再帰関数は、最後の呼び出しの最後を参照していることを実感するようになりました。

次およびnextLine違い:

などコンテンツの読み込み時に()メソッド、効果的に、有効な文字を入力する前に遭遇したスペースキーの文字の前に無効な文字をフィルタリングタブまたはキーを入力します、ターミネータ次の、次の()メソッドは自動的に除外します;その後のスペースキー、TabキーまたはEnterキーなどまで有効な文字、next()メソッドの後に読み取り専用ターミネータを検討し、その文字列の次の()メソッドは、スペースで得ることができません。

nextLine()文字通り行全体を走査意味の方法は、それだけ、即ちnextLine()メソッドは、すべての文字が入力キーの前に読み取られていない返すキーターミネータを入力し、スペースを得ることが可能です文字列。

 

おすすめ

転載: www.cnblogs.com/weixiao1717/p/11586586.html