1. Saiten ändern

In Java sind Strings unveränderliche Objekte. Dies wurde durchgeführt, um die String-Klasse stark zu optimieren und ihre Verwendung überall zu ermöglichen. Beispielsweise werden für die Verwendung als Schlüssel in der HashMap-Sammlung nur unveränderliche Typen empfohlen .

Es kommt jedoch häufig vor, dass Programmierer es bequemer fänden, wenn die StringKlasse veränderbar wäre. Sie wollen eine Klasse, die nicht jedes Mal einen neuen Teilstring erstellt, wenn eine ihrer Methoden aufgerufen wird.

Angenommen, wir haben eine sehr lange Zeichenfolge und müssen am Ende häufig etwas hinzufügen. In diesem Fall kann sogar eine Sammlung von Zeichen ( ArrayList<Character>) effizienter sein als die ständige Neuerstellung und Verkettung von String-Objekten.

Genau aus diesem Grund wurde der Java-Sprache ein String-ähnlicher Typ hinzugefügt, der geändert werden kann. Es heißt StringBuilder.

Ein Objekt erstellen

Um ein StringBuilderObjekt basierend auf einer vorhandenen Zeichenfolge zu erstellen, müssen Sie eine Anweisung wie die folgende ausführen:

StringBuilder name = new StringBuilder(string);

Um eine leere veränderbare Zeichenfolge zu erstellen, müssen Sie eine Anweisung wie diese verwenden:

StringBuilder name = new StringBuilder();

Liste der Methoden

Die StringBuilderKlasse verfügt über zwei Dutzend hilfreiche Methoden. Hier sind die wichtigsten:

Methode Beschreibung
StringBuilder append(obj)
Konvertiert das übergebene Objekt in einen String und hängt ihn an den aktuellen String an
StringBuilder insert(int index, obj)
Wandelt das übergebene Objekt in einen String um und fügt ihn in den aktuellen String ein
StringBuilder replace(int start, int end, String str)
Ersetzt den durch das Start-.Endintervall angegebenen Teil der Zeichenfolge durch die übergebene Zeichenfolge
StringBuilder deleteCharAt(int index)
Entfernt das Zeichen mit dem angegebenen Index aus der Zeichenfolge
StringBuilder delete(int start, int end)
Entfernt Zeichen innerhalb des angegebenen Intervalls aus der Zeichenfolge
int indexOf(String str, int index)
Sucht nach einem Teilstring im aktuellen String
int lastIndexOf(String str, int index)
Sucht nach einem Teilstring im aktuellen String, beginnend am Ende
char charAt(int index)
Gibt das Zeichen in der Zeichenfolge am übergebenen Index zurück
String substring(int start, int end)
Gibt die durch das angegebene Intervall definierte Teilzeichenfolge zurück
StringBuilder reverse()
Kehrt die aktuelle Zeichenfolge um.
void setCharAt(int index, char)
Ändert das Zeichen am angegebenen Index in das übergebene Zeichen
int length()
Gibt die Länge der Zeichenfolge in Zeichen zurück

Hier finden Sie eine kurze Beschreibung jeder Methode


2. Methodenbeschreibung:

Anhängen an eine Zeichenfolge

Um einer veränderlichen Zeichenfolge ( ) etwas hinzuzufügen StringBuilder, verwenden Sie die append()Methode. Beispiel:

Code Beschreibung
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

Konvertieren in eine Standardzeichenfolge

Um ein Objekt in ein String-Objekt umzuwandeln , müssen Sie lediglich seine Methode StringBuilderaufrufen . toString()Beispiel

Code Ausgang
StringBuilder builder = new StringBuilder("Hi");
builder.append(123);
String result = builder.toString();
System.out.println(result);
Hi123

Wie lösche ich einen Charakter?

Um ein Zeichen in einer veränderlichen Zeichenfolge zu löschen, müssen Sie die Methode verwenden deleteCharAt(). Beispiel:

Code Ausgang
StringBuilder builder = new StringBuilder("Hello");
builder.deleteCharAt(2);
String result = builder.toString();
System.out.println(result);
Helo

Wie ersetze ich einen Teil einer Zeichenfolge durch eine andere Zeichenfolge?

Dafür gibt es die replace(int begin, int end, String str)Methode. Beispiel:

Code Ausgang
StringBuilder builder = new StringBuilder("Mellow");
builder.replace(2, 5, "Hello!");
String result = builder.toString();
System.out.println(result);
MeHello!w


3. Nützliche Beispiele für die Arbeit mit Strings

Wie kann ich eine Zeichenfolge umkehren?

Dafür gibt es eine spezielle Methode – reverse(); Beispiel:

Code Ausgang
String str = "Hello";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String result = builder.toString();
System.out.println(result);
olleH

StringBufferKlasse

Es gibt eine andere Klasse – StringBuffer, die ein Analogon der StringBuilderKlasse ist, deren Methoden jedoch mit dem Modifikator gekennzeichnet sind synchronized. Dies bedeutet, dass StringBuffervon mehreren Threads gleichzeitig auf das Objekt zugegriffen werden kann.

Aber es ist viel langsamer als StringBuilder. Möglicherweise benötigen Sie diesen Kurs, wenn Sie beginnen, Multithreading in der Java-Multithreading- Quest aktiv zu erkunden.