Javaの再帰にもっと慣れようとしています。特定の文字列に文字が出現する回数を数えようとしています。
public class apptest {
public static void main(String[] args) {
apptest c = new apptest();
String input = "aaa";
char p = 'a';
c.freq(input, p);
}
public int freq(String c, char p) {
if (c.length() == 0) {
return 0;
} else if (c.charAt(0) == p) {
return 1 + freq(c.substring(1, c.length()), p);
} else
return freq(c.substring(1, c.length()), p);
}
}
出力が得られません。このような問題を解決する方法について完全に混乱しています。私はオンラインでそのfreq(c.substring(1, c.length()),p);
部分を見つけましたが、コードを調べても意味がありません..すべてのパスでまだ「aa」を処理しているようで、必ずしもそれを縮小するとは限りません..何が見えないのですか?