String-Tracer – Indizes, Teilstrings und String-Algorithmen
InformatikAlgorithmen und ProblemlösenAlter 15–16
Wird geladen …
Zum Starten anmeldenEin String wird als Reihe von Zeichenzellen mit Indizes ab 0 dargestellt. Der Modus String-Operationen behandelt Verkettung, Länge, Zeichen an einem Index, Teilstring bzw. Slice [a, b) ohne den Endindex, Suche (indexOf), equals, compareTo, Groß-/Kleinschreibung, Ersetzen, Aufteilen und Zeichencodes, mit den Ergebnissen nebeneinander in Pseudocode, Python und Java, einschließlich Indexfehlern. Der Modus Schleifenalgorithmen führt Zeichen zählen, Umkehren, Palindromtest und naive Teilstringsuche schrittweise mit einer Tracetabelle aus, und der letzte Modus zählt die Vergleiche der naiven Suche und von Boyer–Moore.
Lektion: Strings: Indizes, Slicing und Teilstrings, String-Methoden und Durchlaufen von Strings
Was sie zeigt
Ein String ist eine unveränderliche Folge von Zeichen, jedes mit einem Index, der bei 0 beginnt. Der Slice s[a:b] in Python und s.substring(a, b) in Java schließen Index a ein und Index b aus und liefern daher b − a Zeichen; Java wirft eine Ausnahme, wenn ein Index außerhalb des Bereichs liegt, während Python-Slices die Indizes begrenzen. Methoden wie upper, replace und split liefern neue Strings. Schleifenalgorithmen durchlaufen die Zeichen Index für Index, und eine Tracetabelle hält jeden Schritt fest. Boyer–Moore vergleicht das Muster von rechts und springt nach einer Abweichung vorwärts.
So funktioniert es
Geben Sie einen String s ein (und t, r oder c, wenn verlangt). Wählen Sie unter String-Operationen eine Operation, ziehen Sie a und b und vergleichen Sie die Ergebnisse in Pseudocode, Python und Java; aktivieren Sie Zeichencodes zeigen für ASCII/Unicode-Werte. Wählen Sie unter Schleifenalgorithmen einen Algorithmus und die Sprache bei Code, drücken Sie Schritt oder Abspielen und verfolgen Sie die markierte Zeile und die Tracetabelle. Unter Naiv vs. Boyer–Moore lassen Sie beide Suchen laufen und vergleichen die Vergleichszahlen.
Einstellbare Parameter
- Modus String-Operationen, Schleifenalgorithmen, Suche: naiv vs. Boyer–Moore
- Operation s + t (Verkettung), Länge, Zeichen an Index a, Teilstring / Slice [a, b), t suchen (find / indexOf), Gleichheit (equals), vergleichen (compareTo), in Großbuchstaben, in Kleinbuchstaben, t durch r ersetzen, bei c aufteilen, Zeichencode (ord / chr)
- Algorithmus Zeichen c zählen, String umkehren, Palindromtest, naive Teilstringsuche
- Programmiersprache Pseudocode, Python, Java
- String s
- Zweiter String t (Muster)
- Ersatz r
- Zeichen c
- Index a 0–28
- Index b 0–28
- Zeichencodes zeigen
- Tempo 0,5–10 Schritte/s
Fragen zum Erkunden
- Warum liefert s.substring(2, 5) drei Zeichen, und was passiert in Java und in Python, wenn b größer als die Länge ist?
- Warum ergibt "apple".compareTo("Apple") eine positive Zahl?
- Warum braucht Boyer–Moore bei langen Mustern weniger Vergleiche als die naive Suche?