私はここでこの問題の解決策を見てきましたが、人のコードは私のものとは異なります。私はちょうど私が間違っていることを知りたい。私は非常にプログラミングには新しく、良いことが切望されています。文字列内の指定された文字の出現数を見つけるための再帰
質問:例えば
public static int count(String str, char a)
:(文字列内の指定された文字の出現)は、以下のヘッダを使用して、文字列内の指定された文字の出現回数を見つける再帰的方法を書くcount("Welcome", 'e')
戻ります2
。文字列の後に文字を入力し、その文字列内の文字の出現数を表示するようにユーザーに促すテストプログラムを作成します。範囲外の文字列インデックス:-1
マイコード:
import java.util.Scanner;
public class Exercise18_10{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Please enter a string");
String str = input.next();
System.out.println("Please enter a character");
char car = input.next().charAt(0);
int x = count ("welcome", 'e');
System.out.println("The number of character " +car + " in string " +str + " = "+ x);
}//main
public static int count(String str, char a){
int ct = 0;
if(str.length()>0)
if(str.charAt(0) == a)
ct ++;
count(str.substring(1),a);
return ct;
}
}
私のコードで
問題:スレッド "メイン" java.lang.StringIndexOutOfBoundsExceptionで
例外
助けてください、私は間違って何をしていますか?
あなたのコードをフォーマットすることを学ぶしてください。 – nhouser9
一つの問題は、あなたの代わりにct' 'にそれを追加するので、count''にあなたの再帰呼び出しの結果を捨てているということです。 –
私は、ブランチやループに '{'と '}'文字を使って**常に**の習慣に入ることを強くお勧めします。あなたの '{'と '} '文字をここのコード中の適切な場所に置くと、問題の内容がすぐにわかると思います。 –