public static int getIndexOf(char ch, String str) {
if (str == null || str.equals("")) {
return 0;
//base case
}else{
char first = str.charAt(0);
if (ch != first) {
return -1;
//returns -1 when the character cannot be found within the string
}else{
int rest = str.length() - 1;
if (str.charAt(rest) == ch) {
return rest;
}
return lastIndexOf(ch, str.substring(0, rest));
//recursive case
}
}
}
これは、入力文字列の入力文字のインデックスを返す私のメソッドです。ただし、インタラクション プレーンで実行すると、間違った番号が返されます。例えば、「a」と「peach」を入力すると、本来は 2 が返されるはずが、-1 が返されます。このメソッドは、文字列内に文字が見つからない場合にのみ -1 を返す必要があります。対処方法を教えてもらえますか?ありがとうございました!