MINT lernen

Übungen: Zeichenketten verarbeiten

Zehn interaktive Übungen zu Positionen, Teilzeichenketten und Verkettung — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn interaktive Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.

A1
Ausdruck ↔ Ergebnis
AFB I

In Java gilt String s = "Bahnhof";. Verbinde jeden Ausdruck mit seinem Ergebnis.

A2
Stimmt's? — Fünferserie
AFB I

Fünf Aussagen über Zeichenketten.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Index ab 0, Endposition exklusiv, Verketten ohne Zwischenraum — die drei häufigsten Fehlerquellen.
A3
Teilstück herausschneiden
AFB I

In Java gilt s = "Klassenfahrt". Welche Zeichenkette liefert s.substring(7, 12)? Schreibe sie ohne Anführungszeichen.

Trage deine Antwort ein — Enter prüft direkt.
K-l-a-s-s-e-n stehen auf 0 bis 6, „fahrt“ auf 7 bis 11. Die Endposition 12 ist gleich der Länge und damit erlaubt, gehört aber nicht mehr dazu: 12 − 7 = 5 Zeichen.
A4
Rechenkette: E-Mail-Adresse zerlegen
AFB II

Ein Programm zerlegt die Adresse in der String-Variablen e mit dem Inhalt "lena.meyer@schule.de". Berechne die Werte nacheinander.

Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. e.length()
  2. e.indexOf("@")
  3. Länge von d = e.substring(11, e.length()) Zeichen
  4. d.indexOf(".")
„lena.meyer“ hat 10 Zeichen, also steht das @ an Position 10. Die Domain beginnt eine Position dahinter: „schule.de“ hat 20 − 11 = 9 Zeichen, ihr Punkt steht dort an Position 6.
A5
Wie lang ist das Ergebnis?
AFB II

In Python gilt s = "Sonnenschirm". Ordne die Ausdrücke nach der Länge ihres Ergebnisses — die kürzeste zuerst.

Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1s[2:len(s) - 2]
2s[9:12]
3s[6:7]
4s[0:5]
5s[4] + s[11]
Längen 1 („s“), 2 („em“), 3 („irm“), 5 („Sonne“) und 8 („nnenschi“): Bei s[a:b] ist die Länge immer b − a, hier 10 − 2 = 8.
A6
Tracetabelle: Positionen aufsummieren
AFB II

Welcher Wert wird ausgegeben? Lege eine Tracetabelle an und notiere nur die Durchläufe, in denen sich z ändert.

Pseudocode
s ← "Kakaobohne"
z ← 0
für i von 0 bis länge(s) − 1 wiederhole
  wenn s[i] = "a" oder s[i] = "o" dann
    z ← z + i
  ende wenn
ende für
Ausgabe: z
is[i]z
––0
1a1
………
Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Die Positionen von „a“ sind 1 und 3, die von „o“ 4 und 6: 1 + 3 + 4 + 6 = 14. Die „k“ auf den Positionen 0 und 2 zählen nicht mit.
A7
Gültig oder Absturz?
AFB II

Es gilt String s = "Mathe";. Welche Aufrufe liefern einen Wert, welche brechen mit einem Laufzeitfehler ab?

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1liefert einen Wert
2Laufzeitfehler
Einzelne Zeichen gibt es nur an 0 bis 4. Bei substring(a, b) darf b bis 5 = Länge gehen, und es muss a ≤ b gelten. substring(5, 5) ist erlaubt und liefert die leere Zeichenkette.
A8
Trickaufgabe: Plus ist nicht gleich Plus
AFB III

Welche Java-Ausdrücke liefern die Zeichenkette "123"?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Java wertet von links aus: Erst wenn ein String beteiligt ist, wird verkettet. 1 + 2 + "3" rechnet zuerst 1 + 2 = 3 und liefert „33“, die Klammer liefert „15“. Die Falle: '1' + '2' addiert die Zeichencodes 49 + 50 = 99 — Ergebnis „993“.
A9
Fehlersuche: Initialen bilden
AFB III

Der Algorithmus soll aus einem Namen wie „Anna Lena Berg“ die Initialen „ALB“ bilden; der Name steht in s, das Kürzel entsteht in k. Zwischen den Namensteilen steht genau ein Leerzeichen. Drei Zeilen sind fehlerhaft.

Klicke genau die fehlerhaften Zeilen an — die richtigen musst du stehen lassen.
Zeile 5 ist richtig: Ein Buchstabe ist eine Initiale, wenn davor ein Leerzeichen steht. Deshalb beginnt die Schleife bei 1, damit i − 1 nie negativ wird.
A10
Wie viele Teilzeichenketten?
AFB III

Ein Suchprogramm prüft für ein Wort der Länge 10 jede Teilzeichenkette s.substring(a, b) mit 0 ≤ a < b ≤ 10. Wie viele Aufrufe sind das?

Schiebe den Regler auf deine Antwort — Pfeiltasten bewegen ihn feiner. Nach dem Prüfen siehst du den Trefferbereich.
0150
Für a = 0 gibt es 10 mögliche Enden b, für a = 1 noch 9, …, für a = 9 nur eines: 10 + 9 + … + 1 = 55. Leere Teilzeichenketten (a = b) sind ausgeschlossen.