文字列の文字数を再帰的な方法で計算しようとしています。ここに私のコードは、Java文字列の文字数を再帰的に計算する
public class MainClass {
public int length(String str) {
if (str == null) {
return 0;
} else {
return length(str.substring(1))+1; // in eclipse it says : at MainClass.length(MainClass.java:12)
}
}
public static void main(String args[]) {
MainClass m = new MainClass();
System.out.println(m.length("ali"));
}
}
にあるこの行は動作しません:return length(str.substring(1))+1;
は、どのように私は、コードを修正することができますか? おかげ
すべきですか? (エラーメッセージには、 "MainClass.length"ではなく例外が表示されるはずです...例外は本当に重要で、メッセージはあなたにとって有益であると期待しています...) –
あなたの再帰であなたの文字列の最後に、あなたは長さ0の文字列を持っています、それは ''ヌル ''ではありません。あなたのチェック '' str == null''は意味をなさない。 – f1sh
'return String.length()'? –