K
KhgkasdfJ
Gast
Hallo Leute,
mein Problem ist eigentlich ganz einfach. Ich soll in Groovy (also fast das gleiche wie Java) die Java-Methode indexOf selbst REKURSIV definieren. Die Funktion soll einen String (input), z.B. "Groovy", entgegen nehmen und dann den Index des ersten Auftretens der Zeichenkette "oo" ausgeben. Dafür habe ich die Funktion rek_oo1st definiert. Diese vergleicht den Substring von 0 bis 2 von input mit der Zeichenkette "oo". Wenn diese überseinstimmen, gibt sie die Variable a aus, die zu beginn auf 0 gesetzt wird. Ist sie nicht identisch, ruft sie sich rekursiv mit der Zeichenkette input ohne dem ersten Element auf und erhöht die Variable a um 1.
Das funktioniert auch sehr gut! Aber nun soll sie wenn die Zeichenkette "oo" nicht vorkommt -1 zurückgeben. Und da scheitert das ganze Wir dürfen nur die Methoden substring und length benutzen. (Also nicht contains )
Der Code sieht so aus:
Was mache ich falsch? Warum gibt mir die Funktion nicht -1 zurück, wenn "oo" nicht vorkommt, sondern a-1 oder sowas? Ich hoffe ihr könnt mir helfen auch wenn es nicht direkt JAVA ist! Aber im Groovy-Forum ist nicht allzuviel los
Danke im Vorraus
mein Problem ist eigentlich ganz einfach. Ich soll in Groovy (also fast das gleiche wie Java) die Java-Methode indexOf selbst REKURSIV definieren. Die Funktion soll einen String (input), z.B. "Groovy", entgegen nehmen und dann den Index des ersten Auftretens der Zeichenkette "oo" ausgeben. Dafür habe ich die Funktion rek_oo1st definiert. Diese vergleicht den Substring von 0 bis 2 von input mit der Zeichenkette "oo". Wenn diese überseinstimmen, gibt sie die Variable a aus, die zu beginn auf 0 gesetzt wird. Ist sie nicht identisch, ruft sie sich rekursiv mit der Zeichenkette input ohne dem ersten Element auf und erhöht die Variable a um 1.
Das funktioniert auch sehr gut! Aber nun soll sie wenn die Zeichenkette "oo" nicht vorkommt -1 zurückgeben. Und da scheitert das ganze Wir dürfen nur die Methoden substring und length benutzen. (Also nicht contains )
Der Code sieht so aus:
Java:
String input = "Groovy"
int rek_oo1st(String input2){ // Rekursive Funktion zur Bestimmung des Index von "oo"
a = 0;
if (input2.length() <= 2)
return -1;
else{
if (input2.substring(0,2) == "oo") // Abbruchbedingung
return a ;
else{
rek_oo1st(input2.substring(1,input2.length())); // Selbstaufruf
a=a+1;}
}
}
println(rek_oo1st(input))
Was mache ich falsch? Warum gibt mir die Funktion nicht -1 zurück, wenn "oo" nicht vorkommt, sondern a-1 oder sowas? Ich hoffe ihr könnt mir helfen auch wenn es nicht direkt JAVA ist! Aber im Groovy-Forum ist nicht allzuviel los
Danke im Vorraus