CodeGym /Kurse /JAVA 25 SELF /Die wichtigsten String-Methoden

Die wichtigsten String-Methoden

JAVA 25 SELF
Level 9, Lektion 3
Verfügbar

1. Methode length(): Wie viele Zeichen enthält die Zeichenkette?

Die Methode length() gibt die Anzahl der Zeichen in der Zeichenkette zurück. Das ist nicht ganz dasselbe wie „Anzahl der Bytes“ (insbesondere wenn die Zeichenkette Emojis oder Unicode‑Zeichen enthält), aber für die meisten Aufgaben ist es genau das, was man braucht.

Verwendungsbeispiel

String name = "Alice";
int length = name.length();
System.out.println("Anzahl der Buchstaben im Namen: " + length); // 8

Wozu das gut ist

  • Prüfen, ob der Benutzer eine leere Zeichenkette eingegeben hat.
  • Die minimale/maximale Passwortlänge prüfen.
  • Ermitteln, wie viele Zeichen bis zum Limit übrig sind (z. B. in einer SMS oder in einem Tweet).

Beispiel: Prüfung auf leere Zeichenkette

String input = "";
if (input.length() == 0) 
{
    System.out.println("Die Zeichenkette ist leer!");
}

Tipp: Für die Prüfung auf „Leere“ gibt es außerdem die Methode isEmpty(), aber dazu gleich mehr.

Kurzes FAQ

  • Die Methode length() nimmt keine Argumente entgegen (die Klammern sind immer leer).
  • Wenn die Zeichenkette nur aus Leerzeichen besteht, werden diese ebenfalls als Zeichen gezählt!
  • Ist die Zeichenkette gleich null, führt der Aufruf von length() zu NullPointerException – prüfen Sie vorher auf null.

2. Methode substring(): einen Teil der Zeichenkette extrahieren

Die Methode substring() liefert einen Teilstring – man „schneidet“ ein Stück anhand der angegebenen Indizes aus.

Es gibt zwei Hauptformen des Aufrufs:

  • str.substring(startIndex) – ab Position startIndex bis zum Ende der Zeichenkette.
  • str.substring(startIndex, endIndex) – von Position startIndex bis endIndex (das Zeichen mit dem Index endIndex wird NICHT einbezogen).

Achtung: Die Indizes in einer Zeichenkette beginnen bei 0.

Anwendungsbeispiele

Beispiel 1: Die ersten drei Buchstaben eines Namens erhalten

String name = "Alice";
String firstThree = name.substring(0, 3); // "Vas"
System.out.println(firstThree);

Beispiel 2: Die Dateierweiterung ermitteln

String fileName = "document.pdf";
int dotIndex = fileName.indexOf(".");
String extension = fileName.substring(dotIndex + 1); // "pdf"
System.out.println(extension);

Beispiel 3: Die letzten 4 Zeichen der Zeichenkette

String cardNumber = "1234567890123456";
String lastFour = cardNumber.substring(cardNumber.length() - 4); // "3456"
System.out.println("Letzte 4 Ziffern: " + lastFour);

Besonderheiten und Feinheiten

  • Ungültige Indizes (startIndex < 0, endIndex > Länge, startIndex > endIndex) führen zu StringIndexOutOfBoundsException.
  • Die Methode liefert immer eine neue Zeichenkette – das Original wird nicht verändert.
  • Die zweite Form (mit zwei Parametern) schließt das Zeichen mit dem Index endIndex nicht ein.

String str = "abcdef"; 
// Indizes: 0 1 2 3 4 5

str.substring(1, 4) → "bcd" // Zeichen mit den Indizes 1, 2, 3
Funktionsschema von substring(start, end)

3. Methode indexOf(): ein Zeichen oder einen Teilstring suchen

Die Methode indexOf() sucht die Position (den Index) des ersten Vorkommens eines angegebenen Zeichens oder Teilstrings.

  • Wenn gefunden – wird der Index zurückgegeben (ab 0).
  • Wenn nicht gefunden – wird -1 zurückgegeben.

Anwendungsbeispiele

Beispiel 1: Den ersten Punkt in einer E-Mail finden

String email = "john.smith@mail.com";
int dotIndex = email.indexOf('.');
System.out.println("Erster Punkt an Position: " + dotIndex); // 4

Beispiel 2: Einen Teilstring finden

String text = "Ich liebe Java!";
int index = text.indexOf("Java");
System.out.println(index); // 10

Beispiel 3: Ein Zeichen nach einer bestimmten Position finden

String s = "abracadabra";
int firstA = s.indexOf('a'); // 0
int secondA = s.indexOf('a', firstA + 1); // 3
System.out.println("Das zweite 'a' an Position: " + secondA);

Besonderheiten und Feinheiten

  • Wenn Zeichen/Teilstring mehrfach vorkommen, wird der Index des ersten Vorkommens zurückgegeben.
  • Für das letzte Vorkommen verwenden Sie lastIndexOf().
  • Für ein einzelnes Zeichen verwenden Sie einfache Anführungszeichen: 'a'; für einen Teilstring – doppelte: "abc".

Beispiel: Dateierweiterung suchen

String fileName = "report.final.version.docx";
int lastDot = fileName.lastIndexOf('.');
String extension = fileName.substring(lastDot + 1);
System.out.println("Dateierweiterung: " + extension); // "docx"

4. Methode charAt(): ein Zeichen per Index abrufen

Die Methode charAt(index) liefert das Zeichen der Zeichenkette an diesem Index.

Anwendungsbeispiele

Beispiel 1: Ersten Buchstaben der Zeichenkette prüfen

String city = "Minsk";
char first = city.charAt(0); // 'M'
System.out.println("Erster Buchstabe: " + first);

Beispiel 2: Prüfen, ob die Zeichenkette mit einem Großbuchstaben beginnt

String word = "Java";
if (Character.isUpperCase(word.charAt(0))) 
{
    System.out.println("Das Wort beginnt mit einem Großbuchstaben!");
}

Beispiel 3: Alle Zeichen der Zeichenkette durchlaufen

String text = "Hallo";
for (int i = 0; i < text.length(); i++) 
{
    System.out.println("Zeichen #" + i + ": " + text.charAt(i));
}

Besonderheiten und Feinheiten

  • Ein Index außerhalb des gültigen Bereichs (z. B. -1 oder >= Länge) führt zu StringIndexOutOfBoundsException.
  • Die Methode gibt einen Wert vom Typ char zurück, keinen String.

5. Methode toCharArray(): Zeichenkette in ein Zeichenarray umwandeln

Die Methode toCharArray() – eine einfache Möglichkeit, eine Zeichenkette in ein Zeichenarray (char[]) zu konvertieren. Nützlich für zeichenweise Verarbeitung, Sortierung, Prüfungen usw.

Beispiel:

String text = "Hello";
char[] characters = text.toCharArray();

for (char c : characters) 
{
    System.out.println(c);
}
// Ausgabe:
// H
// e
// l
// l
// o

Wozu das gut ist:

  • Zeichenverarbeitung: Arrays sind für zeichenweise Logik oft bequemer (z. B. beim Prüfen auf Anagramme).
  • Kompatibilität: Manche APIs erwarten char[] als Argument.

6. Methode replace(): Teilstrings ersetzen

Die Methode replace(CharSequence target, CharSequence replacement) ersetzt alle Vorkommen des Teilstrings target durch replacement. Sie gibt eine neue Zeichenkette zurück; das Original bleibt unverändert.

Beispiel:

String sentence = "Ich liebe Programmierung in Java.";
String newSentence = sentence.replace("Java", "Java 25");
System.out.println(newSentence);
// Ausgabe: Ich liebe Programmierung in Java 25.

String email = "support@company.com";
String cleanEmail = email.replace("@", "[at]");
System.out.println(cleanEmail);
// Ausgabe: support[at]company.com

Besonderheiten und Feinheiten

  • Es werden alle Vorkommen ersetzt.
  • String ist unveränderlich: replace() gibt eine neue Zeichenkette zurück.
  • Für komplexe Regeln verwenden Sie replaceAll() mit einem regulären Ausdruck.

7. Methoden trim() und strip(): Leerraum entfernen

Beide Methoden entfernen „unsichtbare“ Zeichen am Anfang und am Ende der Zeichenkette.

  • trim() – die klassische Methode: entfernt Leerzeichen, Tabulatoren, Zeilenumbrüche und einige Steuerzeichen, jedoch nicht alle Unicode‑Leerzeichen.
  • strip() – die moderne Methode: berücksichtigt alle Arten von Leerzeichen gemäß dem Unicode‑Standard. In neuen Projekten vorzuziehen.

Beispiel:

String s1 = "   Hallo, Welt!   ";
System.out.println(s1.trim());
// Ausgabe: "Hallo, Welt!"

String s2 = " \u2005  Java 11  \u2005 "; // \u2005 — ist ein Unicode-Leerzeichen
System.out.println("trim(): " + s2.trim());
System.out.println("strip(): " + s2.strip());
// Ausgabe:
// trim():  Java 11  
// strip(): Java 11

Wozu das gut ist:

  • Benutzereingaben von überflüssigen Leerzeichen bereinigen.
  • Daten aus Dateien/Logs vor der Verarbeitung normalisieren.

8. Praxis: Aufgaben lösen

Aufgabe 1: Prüfung der Passwortlänge

String password = "qwerty";
if (password.length() < 8) 
{
    System.out.println("Passwort ist zu kurz!");
}
else 
{
    System.out.println("Passwort ist in Ordnung.");
}

Aufgabe 2: Vornamen aus einem vollständigen Namen extrahieren

String fullName = "John Peter Smith";
int firstSpace = fullName.indexOf(' ');
String name = fullName.substring(firstSpace + 1, fullName.indexOf(' ', firstSpace + 1));
System.out.println("Vorname: " + name); // "Ivan"

Aufgabe 3: Prüfen, ob die Zeichenkette mit einem bestimmten Buchstaben beginnt

String surname = "Smith";
if (surname.charAt(0) == 'P')
{
    System.out.println("Der Nachname beginnt mit dem Buchstaben P");
}

Aufgabe 4: Die Domain aus einer E-Mail ermitteln

String email = "ivy.briggs@gmail.com";
int at = email.indexOf('@');
String domain = email.substring(at + 1);
System.out.println("Domain: " + domain); // "gmail.com"

Aufgabe 5: Alle Vorkommen des Buchstabens 'a' in einer Zeichenkette finden

String s = "abracadabra";
int pos = s.indexOf('a');
while (pos != -1) 
{
    System.out.println("Buchstabe 'a' gefunden an Position: " + pos);
    pos = s.indexOf('a', pos + 1); // ab der zuletzt gefundenen Position weitersuchen
}

9. Häufige Fehler beim Arbeiten mit String-Methoden

Fehler Nr. 1: Index außerhalb der Zeichenkette
Sehr oft werden Indizes verwechselt und es wird auf ein nicht existentes Zeichen/Teilstring zugegriffen.

String s = "Java";
char c = s.charAt(4); // Fehler! Gültige Indizes: 0..3
String s = "Hello";
String sub = s.substring(3, 10); // Fehler! Länge der Zeichenkette ist 5

Fehler Nr. 2: Verwechslung beim Ein-/Ausschließen des Endindex
Die Methode substring(start, end) schließt das Zeichen mit dem Index start ein, aber NICHT das Zeichen mit dem Index end.

Fehler Nr. 3: Erwarten, dass indexOf bei Abwesenheit etwas anderes als -1 zurückgibt
Prüfen Sie das Ergebnis vor der Verwendung, insbesondere wenn Sie es anschließend in substring verwenden.

Fehler Nr. 4: Falscher Umgang mit leeren Zeichenketten
Wenn die Zeichenkette leer ist (""), führen Aufrufe von charAt(0) oder substring(0, 1) zu einem Fehler. Prüfen Sie zuerst die Länge.

Fehler Nr. 5: Umgang mit null-Zeichenketten
Ist die Zeichenkette gleich null, führt der Aufruf einer beliebigen Methode (length(), substring() usw.) zu NullPointerException. Prüfen Sie immer auf null, bevor Sie fortfahren.

1
Aufgabe
JAVA 25 SELF, Level 9, Lektion 3
Gesperrt
Zeichen anhand eines Indexes extrahieren
Zeichen anhand eines Indexes extrahieren
1
Aufgabe
JAVA 25 SELF, Level 9, Lektion 3
Gesperrt
Suche einer Teilzeichenkette in einem String
Suche einer Teilzeichenkette in einem String
1
Aufgabe
JAVA 25 SELF, Level 9, Lektion 3
Gesperrt
Teilzeichenfolge extrahieren
Teilzeichenfolge extrahieren
1
Aufgabe
JAVA 25 SELF, Level 9, Lektion 3
Gesperrt
Prüfung des ersten Zeichens und Extrahieren einer Teilzeichenfolge
Prüfung des ersten Zeichens und Extrahieren einer Teilzeichenfolge
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION