Java String und indexOf

Beginner Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

In Java sucht String.indexOf naiv oder mit JVM-Optimierungen. Für Lehre zählt der Algorithmus, nicht die interne Intrinsic.

Zeichen sind UTF-16 Code Units; Vorsicht bei Surrogaten in echten Unicode-Texten.

Wo gebraucht

Alltags-API in Backends. Für feste Pattern oft intrinsisch optimiert; trotzdem Komplexität und Encoding (UTF-16) kennen.

Vertiefung

String.indexOf sucht ein Zeichen oder eine Zeichenfolge ab einer optionalen Startposition. Das Ergebnis ist eine Position in der UTF-16-Darstellung von Java. Zeichen ausserhalb der Basic Multilingual Plane können aus zwei code units bestehen, weshalb Index und wahrgenommene Zeichenanzahl auseinanderfallen.

Für wiederholte Treffer muss der nächste Startindex bewusst gewählt werden. Eine Verschiebung um die Musterlänge findet nur nicht überlappende Vorkommen. Eine Verschiebung um eine Position erlaubt Überlappungen, erfordert bei leerem Suchstring aber eine gesonderte Terminierungsregel.

Schwierigkeitsstufen

  1. Fundpositionen mit und ohne Startargument bestimmen.
  2. Überlappende Vorkommen durch passende Fortschaltung erfassen.
  3. UTF-16-Indizes von Unicode-Codepoints unterscheiden.

Fallstricke

Ein erfolgloses Ergebnis darf nicht ungeprüft als Array- oder Stringposition verwendet werden. Ebenso führen Schleifen ohne sicheren Fortschritt bei leeren Suchstrings leicht zu Nichtterminierung.

University approvals: 0
Tasks
Question 1

Welches Ergebnis liefert indexOf, wenn das Muster fehlt?

Question 2

Wie findet eine Schleife auch überlappende Vorkommen eines nichtleeren Suchstrings?

Question 3

Implementiere find mit der Java-Methode String.indexOf.

Hint

String.indexOf(String) liefert den ersten Index oder -1. Die Methode kann direkt auf der Textreferenz aufgerufen werden.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Beginner
  • Completed: 0 users
Creator
Best
Best
BestBuddy