Java Strings meistern: Erstellung, Methoden und Best Practices
Java Strings
In diesem Tutorial lernen wir Java Strings, wie man sie erstellt und verschiedene Methoden der String-Klasse anhand von Beispielen kennen.
In Java ist ein String eine Folge von Zeichen. Zum Beispiel ist "hello" ein String, der eine Folge der Zeichen 'h', 'e', 'l', 'l' und 'o' enthält.
Wir verwenden doppelte Anführungszeichen, um einen String in Java darzustellen. Zum Beispiel:
// String erstellen
String type = "Java programming";
Hier haben wir eine String-Variable namens type erstellt. Die Variable wird mit dem String Java Programming initialisiert.
Beispiel: String in Java erstellen
class Main {
public static void main(String[] args) {
// Strings erstellen
String first = "Java";
String second = "Python";
String third = "JavaScript";
// Strings ausgeben
System.out.println(first); // gibt Java aus
System.out.println(second); // gibt Python aus
System.out.println(third); // gibt JavaScript aus
}
}
Im obigen Beispiel haben wir drei Strings namens first, second und third erstellt. Hier erstellen wir Strings direkt wie primitive Typen.
Es gibt jedoch noch eine andere Möglichkeit, Java Strings zu erstellen (mit dem new-Schlüsselwort). Wir werden das später in diesem Tutorial lernen.
Hinweis: Strings in Java sind keine primitiven Typen (wie int, char, etc.). Stattdessen sind alle Strings Objekte einer vordefinierten Klasse namens String.
Und alle String-Variablen sind Instanzen der String-Klasse.
Java String-Operationen
Java String bietet verschiedene Methoden, um verschiedene Operationen auf Strings auszuführen. Wir schauen uns einige der häufig verwendeten String-Operationen an.
1. Länge eines Strings ermitteln
Um die Länge eines Strings zu finden, verwenden wir die length()-Methode des Strings. Zum Beispiel:
class Main {
public static void main(String[] args) {
// String erstellen
String greet = "Hello! World";
System.out.println("String: " + greet);
// Länge von greet ermitteln
int length = greet.length();
System.out.println("Länge: " + length);
}
}
Ausgabe
String: Hello! World Länge: 12
Im obigen Beispiel berechnet die length()-Methode die Gesamtanzahl der Zeichen im String und gibt sie zurück. Mehr erfahren unter Java String length().
2. Zwei Java Strings verbinden
Wir können zwei Strings in Java mit der concat()-Methode verbinden. Zum Beispiel:
class Main {
public static void main(String[] args) {
// ersten String erstellen
String first = "Java ";
System.out.println("Erster String: " + first);
// zweiten String erstellen
String second = "Programming";
System.out.println("Zweiter String: " + second);
// zwei Strings verbinden
String joinedString = first.concat(second);
System.out.println("Verbundener String: " + joinedString);
}
}
Ausgabe
Erster String: Java Zweiter String: Programming Verbundener String: Java Programming
Im obigen Beispiel haben wir zwei Strings namens first und second erstellt. Beachten Sie die Anweisung:
String joinedString = first.concat(second);
Hier verbindet die concat()-Methode den second-String mit dem first-String und weist ihn der joinedString-Variable zu.
Wir können zwei Strings in Java auch mit dem +-Operator verbinden. Mehr erfahren unter Java String concat().
3. Zwei Strings vergleichen
In Java können wir Vergleiche zwischen zwei Strings mit der equals()-Methode durchführen. Zum Beispiel:
class Main {
public static void main(String[] args) {
// 3 Strings erstellen
String first = "java programming";
String second = "java programming";
String third = "python programming";
// ersten und zweiten String vergleichen
boolean result1 = first.equals(second);
System.out.println("Strings first und second sind gleich: " + result1);
// ersten und dritten String vergleichen
boolean result2 = first.equals(third);
System.out.println("Strings first und third sind gleich: " + result2);
}
}
Ausgabe
Strings first und second sind gleich: true Strings first und third sind gleich: false
Im obigen Beispiel haben wir 3 Strings namens first, second und third erstellt. Hier verwenden wir die equals()-Methode, um zu prüfen, ob ein String einem anderen gleich ist.
Die equals()-Methode prüft den Inhalt der Strings beim Vergleichen. Mehr erfahren unter Java String equals().
Hinweis: Wir können zwei Strings in Java auch mit dem ==-Operator vergleichen. Dieser Ansatz unterscheidet sich jedoch von der equals()-Methode. Mehr erfahren unter Java String == vs equals().
Escape-Zeichen in Java Strings
Das Escape-Zeichen wird verwendet, um einige der in einem String vorhandenen Zeichen zu escapen.
Angenommen, wir müssen doppelte Anführungszeichen innerhalb eines Strings einschließen.
// doppeltes Anführungszeichen einschließen
String example = "This is the "String" class";
Da Strings durch doppelte Anführungszeichen dargestellt werden, behandelt der Compiler "This is the " als den String. Daher verursacht der obige Code einen Fehler.
Um dieses Problem zu lösen, verwenden wir das Escape-Zeichen \ in Java. Zum Beispiel:
// Escape-Zeichen verwenden
String example = "This is the \"String\" class.";
Jetzt weisen Escape-Zeichen den Compiler an, doppelte Anführungszeichen zu escapen und den gesamten Text zu lesen.
Java Strings sind unveränderlich
In Java sind Strings unveränderlich. Das bedeutet, einmal einen String erstellt, können wir diesen String nicht ändern.
Um es tiefer zu verstehen, betrachten Sie ein Beispiel:
// String erstellen
String example = "Hello! ";
Hier haben wir eine String-Variable namens example erstellt. Die Variable hält den String "Hello! ".
Angenommen, wir wollen den String ändern.
// anderen String "World"
// zum vorherigen String hinzufügen
example = example.concat(" World");
Hier verwenden wir die concat()-Methode, um einen anderen String World zum vorherigen String hinzuzufügen.
Es sieht so aus, als könnten wir den Wert des vorherigen Strings ändern. Das ist jedoch false.
Sehen wir, was hier passiert ist:
- JVM nimmt den ersten String "Hello! "
- erstellt einen neuen String, indem "World" zum ersten String hinzugefügt wird
- weist den neuen String "Hello! World" der example-Variable zu
- der erste String "Hello! " bleibt unverändert
Strings mit dem new-Schlüsselwort erstellen
Bisher haben wir Strings wie primitive Typen in Java erstellt.
Da Strings in Java Objekte sind, können wir Strings auch mit dem new-Schlüsselwort erstellen. Zum Beispiel:
// String mit new-Schlüsselwort erstellen
String name = new String("Java String");
Im obigen Beispiel haben wir einen String name mit dem new-Schlüsselwort erstellt.
Hier wird beim Erstellen eines String-Objekts der String()-Konstruktor aufgerufen. Mehr über Konstruktoren unter Java Konstruktor.
Hinweis: Die String-Klasse bietet verschiedene andere Konstruktoren zum Erstellen von Strings. Mehr erfahren unter Java String (offizielle Java-Dokumentation).
Beispiel: Java Strings mit dem new-Schlüsselwort erstellen
class Main {
public static void main(String[] args) {
// String mit new erstellen
String name = new String("Java String");
System.out.println(name); // gibt Java String aus
}
}
String mit Literalen vs. new-Schlüsselwort erstellen
Da wir jetzt wissen, wie Strings mit String-Literalen und dem new-Schlüsselwort erstellt werden, schauen wir uns den Hauptunterschied zwischen ihnen an.
In Java verwaltet die JVM einen String-Pool, um alle Strings im Speicher zu speichern. Der String-Pool hilft bei der Wiederverwendung von Strings.
1. Beim Erstellen von Strings mit String-Literalen:
String example = "Java";
Hier geben wir den Wert des Strings direkt an (Java). Daher prüft der Compiler zuerst den String-Pool, ob der String bereits existiert.
- Wenn der String bereits existiert, wird kein neuer String erstellt. Stattdessen zeigt die neue Referenz example auf den bereits existierenden String (
Java). - Wenn der String nicht existiert, wird der neue String (
Java) erstellt.
2. Beim Erstellen von Strings mit dem new-Schlüsselwort:
String example = new String("Java");
Hier wird der Wert des Strings nicht direkt bereitgestellt. Daher wird ein neuer "Java"-String erstellt, obwohl "Java" bereits im Speicher-Pool vorhanden ist.
Methoden der Java String-Klasse
Neben den oben genannten gibt es verschiedene String-Methoden in Java. Hier sind einige davon:
| Methoden | Beschreibung |
|---|---|
| contains() | prüft, ob der String einen Teilstring enthält |
| substring() | gibt den Teilstring des Strings zurück |
| join() | verbindet die gegebenen Strings mit dem Trennzeichen |
| replace() | ersetzt das angegebene alte Zeichen durch das angegebene neue Zeichen |
| replaceAll() | ersetzt alle Teilstrings, die dem Regex-Muster entsprechen |
| replaceFirst() | ersetzt den ersten passenden Teilstring |
| charAt() | gibt das Zeichen an der angegebenen Position zurück |
| getBytes() | konvertiert den String in ein Byte-Array |
| indexOf() | gibt die Position des angegebenen Zeichens im String zurück |
| compareTo() | vergleicht zwei Strings in lexikographischer Reihenfolge |
| compareToIgnoreCase() | vergleicht zwei Strings unter Ignorieren von Groß-/Kleinschreibung |
| trim() | entfernt führende und nachfolgende Whitespaces |
| format() | gibt einen formatierten String zurück |
| split() | teilt den String in ein Array von Strings auf |
| toLowerCase() | konvertiert den String in Kleinbuchstaben |
| toUpperCase() | konvertiert den String in Großbuchstaben |
| valueOf() | gibt die String-Repräsentation des angegebenen Arguments zurück |
| toCharArray() | konvertiert den String in ein char-Array |
| matches() | prüft, ob der String dem gegebenen Regex entspricht |
| startsWith() | prüft, ob der String mit dem gegebenen String beginnt |
| endsWith() | prüft, ob der String mit dem gegebenen String endet |
| isEmpty() | prüft, ob ein String leer ist oder nicht |
| intern() | gibt die kanonische Repräsentation des Strings zurück |
| contentEquals() | prüft, ob der String gleich dem charSequence ist |
| hashCode() | gibt einen Hash-Code für den String zurück |
| subSequence() | gibt eine Teilfolge aus dem String zurück |
Java
- C# Strings meistern: Grundlagen, Operationen & fortgeschrittene Techniken
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- String-Repräsentationen in Java Enums meistern
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
- Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
- Java String.endsWith(): String-Suffixe prüfen mit Beispielen
- Java String-Ersetzung meistern: replace(), replaceAll() und replaceFirst() erklärt
- Java String toLowerCase() & toUpperCase(): Text-Groß-/Kleinschreibung mit Locale-Bewusstsein konvertieren