1. java-hell.de
  2. Themen
  3. Strings & Switch
Thema 7 von 11

Java Strings & Switch lernen – Übungen online

Warum == bei Strings dich irgendwann beißt und equals() nicht: Hier lernst du, mit Texten zu arbeiten und mit switch lange if-else-Ketten loszuwerden.

Die Übungen

Das lernst du in diesem Thema

  1. String-Länge
  2. Strings vergleichen
  3. Switch
Übung 1 von 3

String-Länge

Strings haben nützliche Methoden. Die einfachste: .length()

String text = "Hallo";
IO.println(text.length()); // 5

Achtung: Bei Strings ist es .length() mit Klammern — bei Arrays .length ohne!

Ersetze ???, um die Länge des Wortes auszugeben.

Startcode
void main() {
    String wort = "Programmieren";
    IO.println(???);
}
Hintergrund
Nützliche String-Methoden

Strings haben viele eingebaute Methoden: .toUpperCase(), .toLowerCase(), .substring(start, end), .indexOf("text"), .replace("alt", "neu"), .trim() (Leerzeichen entfernen), .contains("text"), .startsWith("prefix").

Da Strings immutable sind, geben all diese Methoden einen neuen String zurück — der Originalstring bleibt unverändert.

Übung 2 von 3

Strings vergleichen

Wichtige Java-Falle: Strings vergleichst du nicht mit ==, sondern mit .equals():

if (name.equals("Anna")) {
    // ...
}

Ersetze ??? mit dem richtigen Vergleich.

Startcode
void main() {
    String eingabe = "ja";

    if (???) {
        IO.println("Weiter gehts!");
    } else {
        IO.println("Abbruch");
    }
}
Hintergrund
String Pool

Java hat einen String Pool — einen Cache für String-Literale. Schreibst du zweimal "hallo" im Code, zeigen beide auf das gleiche Objekt im Pool. Deshalb funktioniert == bei Literalen manchmal zufällig — aber nicht immer!

Strings die zur Laufzeit erstellt werden (z.B. durch new String("hallo") oder User-Eingaben) landen nicht im Pool. Deshalb: immer .equals() verwenden.

Übung 3 von 3

Switch

Wenn du viele if-else if hintereinander hast, ist switch übersichtlicher:

switch (wert) {
    case 1: ...; break;
    case 2: ...; break;
    default: ...;
}

Wichtig: Vergiss break; nicht — sonst läuft Java einfach in den nächsten Fall weiter!

Ergänze den fehlenden case für Mittwoch.

Startcode
void main() {
    int tag = 3;

    switch (tag) {
        case 1: IO.println("Montag"); break;
        case 2: IO.println("Dienstag"); break;
        // Ergaenze case 3 fuer "Mittwoch"
        default: IO.println("Anderer Tag");
    }
}
Hintergrund
Switch Expressions (ab Java 14)

Modernes Java hat eine elegantere Switch-Variante mit ->:

String tag = switch (nr) { case 1 -> "Montag"; case 2 -> "Dienstag"; default -> "Andere"; };

Vorteile: kein break nötig, kann direkt einen Wert zurückgeben, und der Compiler verweigert das Kompilieren, wenn ein Fall nicht abgedeckt ist (ein Switch-Ausdruck muss vollständig sein). Das klassische Switch gibt es aber weiterhin.

Genug gelesen. Jetzt du.

Im Tutorial schreibst du den Code selbst, drückst auf Ausführen und siehst sofort, ob dein Programm stimmt. Kein JDK, keine IDE, kein Bullshit.

Strings & Switch im Browser üben