Java StringBuffer- und StringBuilder-Klassen
Beim Ändern von Zeichenketten müssen Sie die Klassen StringBuffer und StringBuilder verwenden.
Im Gegensatz zur String-Klasse können Objekte der Klassen StringBuffer und StringBuilder mehrmals geändert werden, ohne neue ungenutzte Objekte zu erzeugen.

Bei Verwendung der Klasse StringBuffer wird jede Operation am StringBuffer-Objekt selbst ausgeführt, statt ein neues Objekt zu erzeugen; wenn Sie Zeichenketten ändern müssen, wird StringBuffer empfohlen.
Die Klasse StringBuilder wurde in Java 5 eingeführt. Der größte Unterschied zwischen ihr und StringBuffer besteht darin, dass die Methoden von StringBuilder nicht threadsicher sind (auf sie kann nicht synchron zugegriffen werden).
Da StringBuilder einen Geschwindigkeitsvorteil gegenüber StringBuffer hat, wird in den meisten Fällen die Verwendung der Klasse StringBuilder empfohlen.
Beispiel
Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels lautet wie folgt:
Example.. Example..! Example..Java! RunooJava!
Wenn die Anwendung jedoch Thread-Sicherheit erfordert, muss die StringBuffer-Klasse verwendet werden.
Code der Datei Test.java:
Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels lautet wie folgt:
Example官网:www.example.com
StringBuffer-Methoden
Die folgenden sind die wichtigsten Methoden, die von der StringBuffer-Klasse unterstützt werden:
| Nein. | Methodenbeschreibung |
|---|---|
| 1 |
public StringBuffer append(String s) Hängt die angegebene Zeichenkette an diese Zeichenfolge an. |
| 2 |
public StringBuffer reverse() Ersetzt diese Zeichenfolge durch ihre umgekehrte Form. |
| 3 |
public delete(int start, int end) Entfernt die Zeichen in einem Teilstring dieser Sequenz. |
| 4 |
public insert(int offset, int i) wird intFügt die String-Darstellung des Arguments in diese Sequenz ein. |
| 5 |
insert(int offset, String str)
wird strFügt die Zeichenkette des Arguments in diese Sequenz ein. |
| 6 |
replace(int start, int end, String str) Unter Verwendung der angegebenen Stringersetzt die Zeichen in einem Teilstring dieser Sequenz durch die Zeichen in der angegebenen Zeichenkette. |
Die folgende Liste führt weitere gängige Methoden der StringBuffer-Klasse auf:
| Nein. | Methodenbeschreibung |
|---|---|
| 1 |
int capacity() Gibt die aktuelle Kapazität zurück. |
| 2 |
char charAt(int index) Gibt den char-Wert am angegebenen Index in dieser Sequenz zurück. charWert. |
| 3 |
void ensureCapacity(int minimumCapacity) Stellt sicher, dass die Kapazität mindestens dem angegebenen Minimum entspricht. |
| 4 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Kopiert Zeichen aus dieser Sequenz in das Ziel-Zeichenarray. dst。 |
| 5 |
int indexOf(String str) Gibt den Index des ersten Vorkommens der angegebenen Teilzeichenkette in dieser Zeichenkette zurück. |
| 6 |
int indexOf(String str, int fromIndex) Gibt den Index des ersten Vorkommens der angegebenen Teilzeichenfolge in dieser Zeichenfolge zurück, beginnend beim angegebenen Index. |
| 7 |
int lastIndexOf(String str) Gibt den Index des am weitesten rechts gelegenen Vorkommens des angegebenen Teilstrings in dieser Zeichenkette zurück. |
| 8 |
int lastIndexOf(String str, int fromIndex) Gibt den Index des letzten Vorkommens der Teilzeichenfolge im String-Objekt zurück. |
| 9 |
int length() Gibt die Länge (Anzahl der Zeichen) zurück. |
| 10 |
void setCharAt(int index, char ch) Setzt das Zeichen am angegebenen Index auf ch。 |
| 11 |
void setLength(int newLength) Setzt die Länge der Zeichensequenz. |
| 12 |
CharSequence subSequence(int start, int end) Gibt eine neue Zeichensequenz zurück, die eine Teilsequenz dieser Sequenz ist. |
| 13 |
String substring(int start) Gibt ein neues String, die die derzeit in dieser Zeichensequenz enthaltene Zeichenuntersequenz enthält. |
| 14 |
String substring(int start, int end) Gibt ein neues String, die die derzeit in dieser Sequenz enthaltene Zeichenuntersequenz enthält. |
| 15 |
String toString() Gibt die Zeichenfolgendarstellung der Daten in dieser Sequenz zurück. |
Weitere Inhalte:
- StringBuffer-Klasse:https://www.example.com/manual/jdk11api/java.base/java/lang/StringBuffer.html
- StringBuilder-Klasse:https://www.example.com/manual/jdk11api/java.base/java/lang/StringBuilder.html