Moin,
Mein Code klappt soweit, allerdings wirft mir Java bei System.out.println(zipZap("zzzopzop")); immer "zzzpp" aus. Rauskommen soll aber => zzzpzp.
Wäre jemand so lieb und kann mir den Fehler erklären und einen Lösungsvorschlag vorschlagen.
Danke schonmal im Voraus !
Mein Code klappt soweit, allerdings wirft mir Java bei System.out.println(zipZap("zzzopzop")); immer "zzzpp" aus. Rauskommen soll aber => zzzpzp.
Wäre jemand so lieb und kann mir den Fehler erklären und einen Lösungsvorschlag vorschlagen.
Danke schonmal im Voraus !
Java:
/**
* ## zipZap
*
* Entwickeln Sie bitte eine Methode `zipZap()`, die in einer
* beliebigen Zeichenkette nach Mustern wie "zip" und "zap" sucht.
* Teilzeichenketten der Länge 3, die mit 'z' beginnen und mit 'p' enden,
* sollen durch Zeichenketten der Länge 2 ersetzt werden, bei der der
* mittlere Buchstabe wegfällt, so dass "zipXzap" "zpXzp" ergibt.
*
* Aufrufbeispiele finden Sie in der `main()`-Methode.
*
* __Verbote:__
*
* - Der Einsatz von `replaceAll()` ist verboten.
*
*/
public class Main {
public static String zipZap(String input) {
if ( input.isEmpty()) {
return input;
}
String ausgabe = "";
for (int i = 0; i < input.length(); i++) {
int woZ = input.indexOf("z",i);
int woP = input.indexOf("p",i);
if ( woZ == (woP - 2)) {
ausgabe += input.substring(i,woZ) + "zp";
i += woP;
} else {
ausgabe += input.substring(i,i + 1);
}
}
return ausgabe;
}
public static void main(String[] args) {
String zipZapped = zipZap("zipXzap");
System.out.println(zipZapped); // => zpXzp
System.out.println(zipZap("zopzop")); // => zpzp
System.out.println(zipZap("zzzopzop")); // => zzzpzp
}
}