Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Vokale in einem String überprüfen mittels Rekursion
Moin Leute,
ich muss eine rekursive Methode schreiben die bei einem String Parameter überprüft ob der String ein Vokal enthält. Nun weiß ich nicht genau wie die Methode sich selber aufrufen soll und true oder false liefern soll.
Also bis jetzt hab ich das hier:
[CODE lang="java" title="enthaeltVokal"]public boolean enthaeltVokal(String s)
{
boolean hatVokal = false;
s = s.toLowerCase();
Formuliere es doch erst einmal im Detail in Worten. Wenn Du den Algorithmus erst einmal richtig erfasst hast, dann kannst Du den Schritt zu Java gehen. Nicht versuchen, zwei Dinge auf einmal zu bewältigen - das ist eine unnötige Komplexität.
Also bis jetzt hab ich das hier:
[CODE lang="java" title="enthaeltVokal"]public boolean enthaeltVokal(String s)
{
boolean hatVokal = false;
s = s.toLowerCase();
1. String in lowercase setzten
2. abfragen ob der erste char des Strings ein Vokal ist, wenn ja return true
3. falls jedoch die Länge des Strings schon 1 beträgt und diese kein Vokal ist return false
4. return der neuen aufgerufenen Methode und lösche den ersten Char weg
@Wireless Es wäre durchaus besser, wenn Du keine fertigen Lösungen vorgeben würdest. Der Lerneffekt ist doch so fast null. Schau lieber, woran es scheitert und helfe dem TE, seine Fehler zu erkennen um das dann selbst zu lösen. Danke.
@Wireless Es wäre durchaus besser, wenn Du keine fertigen Lösungen vorgeben würdest. Der Lerneffekt ist doch so fast null. Schau lieber, woran es scheitert und helfe dem TE, seine Fehler zu erkennen um das dann selbst zu lösen. Danke.
Formuliere es doch erst einmal im Detail in Worten. Wenn Du den Algorithmus erst einmal richtig erfasst hast, dann kannst Du den Schritt zu Java gehen. Nicht versuchen, zwei Dinge auf einmal zu bewältigen - das ist eine unnötige Komplexität.
also die Methode muss durch jeden buchstaben gehen und prüfen ob der char ein vokal ist, dabei muss immer um 1 erhöht werden damit der nächste buchstabe geprüft wird und das solange bis der index = der Länge vom String ist
also die Methode muss durch jeden buchstaben gehen und prüfen ob der char ein vokal ist, dabei muss immer um 1 erhöht werden damit der nächste buchstabe geprüft wird und das solange bis der index = der Länge vom String ist
Das wäre ein Ansatz, aber damit das funktionieren würde, bräuchtest Du dann bei jedem Aufruf den Index.
Den Ansatz findet man durchaus auch in der Praxis. Der hast Du den eigentlichen Aufruf und der ruft dann eine weitere Methode auf, die dann mehr Parameter hat.
Habt ihr schon mit Strings gearbeitet? Sprich; Kannst Du von einem String einen Teilstring erzeugen? (@Wireless hat dies ja schon gezeigt.) Wenn so eine Funktion bekannt / erlaubt ist, dann sollte man das nutzen.
Der generelle Aufbau einer Rekursion ist unter dem Strich immer gleich:
a) Prüfung, ob man am Ende angelangt ist - den Part hattest Du schon sehr schön mit drin.
b) Behandlung eines aktuellen Elements + rekursiver Aufruf für den "Rest".