Java?

1 Antwort

Als erstes musst du danach suchen, ob es überhaupt den String gibt und dann eben auch die Position.

Als erstes würde ich ein normales indexOf mit dem ersten Zeichen aus search laufen lassen. Falls es nicht gefunden wird, kannst direkt abbrechen.

Danach kannst du ein Substring vom Source String mit der Startposition von der Suche und der länge vom Search String bilden. Das Ergebnis könntest einfach mit der Suche vergleichen.

Falls der gebildete Substring nicht identisch ist, führst du ein weiteres indexOf aus, welches die Startposition nach dem ersten Fund definiert und bildest anschließend wieder ein Substring.

Wenn du den Abschnitt gefunden hast, kannst du ein Substring vom ersten Teil des Source Strings bis zur gefundenen Suchen bilden. Gleiches für den Teil nach der Suche.

Im Anschluss kannst du die drei einzelnen Strings zusammenführen. Ich hoffe die Addition von Strings darf benutzt werden.

Es ist jetzt kein Source Code, aber mit noch ein paar Schleifen und If's solltest du es selber hinbekommen.

mathe999 
Fragesteller
 24.01.2022, 09:00

Danke! Hast du auch eine Idee, wie ich das testen kann?

0
tide1109  24.01.2022, 10:13
@mathe999

Denke dir Beispiele mit Ergebnissen aus und überprüfe nach dem Ausführen, ob das Ergebnis eingetreten ist.

Es sollte Fälle wie nicht gefunden, doppelt Enthalten, ein Buchstabe groß statt klein und auch Fälle die Erfolgreich sind dabei sein.

Wenn du möchtest, könntest du auch ein Framework für Unittests benutzen.

0
mathe999 
Fragesteller
 24.01.2022, 11:31
@tide1109

Ich soll JUnit-Tests verwenden. Aber wie könnten da welche aussehen?

0
tide1109  24.01.2022, 12:14
@mathe999

Ich kenne nicht die exakte Bedienung von JUnit, aber so im etwa sollte ein Test aussehen.

@Test
void successfulTest() {
  String result = replace("IchBinEinTestString", "Ein", "Der");
  AssertEquals(result, "IchBinDerTestString");
}

Bei einem weiteren Test würde du als Suche z.B. "ein", wählen und dort würdest du eine Exception bzw. den Original String erwaten (Assert).

Den Methoden/Test Namen sollte du an dem Ziel vom Test anpassen.

0