Hallo!
Ich versuche grade die Rekursion zu verstehen und habe wollte mir deshalb mal ein Programm schreiben, dass Leerzeichen in einem String zählt. Natürlich mittels Rekursion.
Das bekomme ich aber einfach nicht hin, kann mir da jemand weiterhelfen?
Ich habe:
Ablaufen sollte es so:
anzahlLeerzeichen("a bc d")
-> 0 + anzahlLeerzeichen(" bc d")
-> 0 + (1 + anzahlLeerzeichen("bc d"))
-> 0 + (1 + (0 + anzahlLeerzeichen("c d")))
-> 0 + (1 + (0 + (0 + anzahlLeerzeichen(" d"))))
-> 0 + (1 + (0 + (0 + (1 + anzahlLeerzeichen("d")))))
-> 0 + (1 + (0 + (0 + (1 + (0 + anzahlLeerzeichen(""))))))
-> 0 + (1 + (0 + (0 + (1 + (0 + 0)))))
-> 0 + (1 + (0 + (0 + (1 + 0))))
-> 0 + (1 + (0 + (0 + 1)))
-> 0 + (1 + (0 + 1))
-> 0 + (1 + 1)
-> 0 + 2
-> 2
Ich danke euch!
LG
Thomas
Ich versuche grade die Rekursion zu verstehen und habe wollte mir deshalb mal ein Programm schreiben, dass Leerzeichen in einem String zählt. Natürlich mittels Rekursion.
Das bekomme ich aber einfach nicht hin, kann mir da jemand weiterhelfen?
Ich habe:
Java:
public int anzahlLeerzeichen(String s)
{
if(s.isEmpty())
{
return 0;
}
else
{
int ergebnis = anzahlLeerzeichen(s.substring(1));
if(s.substring(s.length() - 1).isEmpty())
{
return 1 + ergebnis;
}
else
{
return ergebnis;
}
}
}
Ablaufen sollte es so:
anzahlLeerzeichen("a bc d")
-> 0 + anzahlLeerzeichen(" bc d")
-> 0 + (1 + anzahlLeerzeichen("bc d"))
-> 0 + (1 + (0 + anzahlLeerzeichen("c d")))
-> 0 + (1 + (0 + (0 + anzahlLeerzeichen(" d"))))
-> 0 + (1 + (0 + (0 + (1 + anzahlLeerzeichen("d")))))
-> 0 + (1 + (0 + (0 + (1 + (0 + anzahlLeerzeichen(""))))))
-> 0 + (1 + (0 + (0 + (1 + (0 + 0)))))
-> 0 + (1 + (0 + (0 + (1 + 0))))
-> 0 + (1 + (0 + (0 + 1)))
-> 0 + (1 + (0 + 1))
-> 0 + (1 + 1)
-> 0 + 2
-> 2
Ich danke euch!
LG
Thomas