Zum Inhalt springen
Lektion 6 von 26 10 Min. Leicht Zur Übung Mit Codebeispiel

Strings

Strings sind überall: Namen, Eingaben, Fehlermeldungen. Sie sehen einfach aus, haben aber einen berühmten Fallstrick beim Vergleichen.

Ansicht

01

Verstehen

Lies die Kernidee und das Beispiel.

02

Prüfen

Beantworte die Aktiv-Checks.

03

Anwenden

Setze die Transferaufgabe um.

Mini-Erfolg

Du hast zwei Texte korrekt verglichen und einen langen Text mit StringBuilder gebaut.

Warum das wichtig ist: Texte sind überall: Namen, Eingaben, Fehlermeldungen und Ausgaben. Der equals-Fallstrick begegnet fast allen.

Vorher hilfreich

Lerninhalt

Verstehen & anwenden

1

Erzeugen und vergleichen

Ein String ist ein Objekt und unveränderlich.

Jede Veränderung erzeugt einen neuen String.

== vergleicht bei Strings die Referenz, nicht den Inhalt. Für Inhalte ist equals() fast immer die richtige Wahl.

Stringequals()==
Der equals-Fallstrick
String a = "Java";
String b = new String("Java");

System.out.println(a == b);      // false (andere Objekte)
System.out.println(a.equals(b)); // true (gleicher Inhalt)

String c = "Ja" + "va";
System.out.println(a == c);      // true (Compiler optimiert)
2

Texte verändern

Methoden wie length(), toUpperCase(), substring() und replace() liefern neue Strings zurück.

Der Original-String bleibt unverändert. Das ist am Anfang ungewohnt, aber wichtig für das Verständnis.

length()substring()replace()toUpperCase()
String-Methoden
String name = "  Ada Lovelace  ";
String sauber = name.trim();

System.out.println(sauber.length());          // 12
System.out.println(sauber.toUpperCase());    // ADA LOVELACE
System.out.println(sauber.substring(0, 3));  // Ada
System.out.println(sauber.replace("Ada", "Grace"));
3

StringBuilder und Formatierung

Wenn du in einer Schleife viele Teile zusammensetzt, ist StringBuilder deutlich effizienter als +.

formatted() setzt Werte sauber in einen Text ein und ist oft lesbarer als lange Verkettungen.

StringBuilderformatted()Textblock
Text zusammenbauen
StringBuilder bauen = new StringBuilder();
for (int i = 1; i <= 3; i++) {
    bauen.append("Level ").append(i).append(" ");
}
System.out.println(bauen.toString());

String text = "%s hat %d Punkte".formatted("Ada", 42);
System.out.println(text);

Vertiefung

Unveränderlich und trotzdem effizient

Strings sind immutable: Jede Methode erzeugt einen neuen String. Deshalb ist text += "x" in einer Schleife teuer, weil jedes Mal ein neues Objekt entsteht.

StringBuilder ist ein veränderbarer Puffer. Für viele Teile ist er die richtige Wahl. Für Vergleiche gilt fast immer equals(), nicht ==.

equals und StringBuilder
String a = "Java";
String b = new String("Java");
System.out.println(a == b);      // false
System.out.println(a.equals(b)); // true

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 3; i++) sb.append(i).append(" ");
System.out.println(sb.toString().trim()); // 0 1 2

Merksatz: Inhalte mit equals(), viele Teile mit StringBuilder. Strings sind unveränderlich — das ist Sicherheit, kostet aber bei Schleifen.

Übungsaufgabe

Palindrom-Checker

Prüfe, ob ein Wort vorwärts und rückwärts gleich ist. Ignoriere dabei Groß-/Kleinschreibung und Leerzeichen.

Das soll dein Programm können

  • Den String normalisieren (trim, toLowerCase, Leerzeichen entfernen)
  • Mit StringBuilder umdrehen
  • Boolean zurückgeben und ausgeben
  • Mindestens drei Testwörter

Schreibe den Code hier oder in deiner IDE und vergleiche ihn dann mit der Lösung.

Dein Code wird automatisch auf diesem Gerät gespeichert.

Hinweis anzeigen

Normalisieren: text.toLowerCase().replace(" ", ""). Umdrehen: new StringBuilder(sauber).reverse().toString().

Lösung anzeigen
Palindrom-Checker.java
public class Palindrom {
    public static void main(String[] args) {
        System.out.println(istPalindrom("Lagerregal"));
        System.out.println(istPalindrom("Java"));
        System.out.println(istPalindrom("Ein Esel lese nie"));
    }

    static boolean istPalindrom(String text) {
        String sauber = text.toLowerCase().replace(" ", "");
        String umgedreht = new StringBuilder(sauber).reverse().toString();
        return sauber.equals(umgedreht);
    }
}

Warum funktioniert das?

Nach dem Normalisieren vergleichst du mit equals, nicht mit ==. Der StringBuilder dreht den Inhalt um, ohne viele neue Zwischenstrings zu erzeugen.

Aktiv-Check

Teste dein Verständnis

1/6

Erkennen: Welcher Abschnitt passt?

Welcher Abschnitt passt zu diesen Begriffen?

Stringequals()==
Tipp: Erst erinnern, dann prüfen. Fehler sind Teil des Lernens.

Spaßprojekt

Passwort-Checker

Prüfe, ob ein Passwort lang genug ist, eine Zahl enthält und nicht „passwort“ heißt. Gib eine verständliche Rückmeldung aus.

Selbstcheck

Kann ich das schon?

Hake ab, was du wirklich erklären oder selbst bauen könntest.

0 von 3 geschafft

Fortschritt

Bereit zum Abschließen?

Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.

</> Learn-Program © 2026 · Lizenziert unter CC BY-NC-SA 4.0

Rechtliches & Lizenz