StringBuffer in Java ist eine threadsichere, veränderbare Zeichenfolge.
Im Post String in Java haben wir bereits gesehen, dass String-Objekte unveränderlich sind, dh Strings sind konstant; ihre Werte können nicht geändert werden, nachdem sie erstellt wurden. Aufgrund dieser Unveränderlichkeitseigenschaft wird bei Verwendung einer Zeichenfolgenänderungsmethode wie der Verkettung tatsächlich eine neue Zeichenfolge erstellt und zurückgegeben, die das Ergebnis der Operation enthält. Dies kann zur Erstellung vieler String-Zwischenobjekte führen, wenn String mehrmals geändert wird, was wiederum bedeutet, dass mehr Speicher für diese Zwischenobjekte verwendet wird.
Mit dem StringBuffer-Objekt können Sie dieses Problem beim Erstellen mehrerer Objekte vermeiden, da es veränderbar ist. Es überrascht nicht, dass die Hauptoperationen für einen StringBuffer die Methoden append und insert .
- Wichtige Punkte über Java StringBuffer
- Java StringBuffer Konstruktoren
- Java StringBuffer method examples
Wichtige Punkte über Java StringBuffer
Einige der wichtigen Punkte über StringBuffer Klasse.
- StringBuffer in Java bietet einen Großteil der Funktionalität der String-Klasse mit einer markanten Abweichung, dass StringBuffer veränderbar ist.
- StringBuffer ist auch threadsicher, daher kann das StringBuffer-Objekt sicher von mehreren Threads verwendet werden. Die Methoden der StringBuffer-Klasse werden bei Bedarf synchronisiert.
- Jeder StringBuffer wird mit einer Kapazität erstellt. Solange die Länge der im Zeichenfolgenpuffer enthaltenen Zeichenfolge die Kapazität nicht überschreitet, ist es nicht erforderlich, ein neues internes Pufferarray zuzuweisen. Wenn der interne Puffer überläuft, wird er automatisch vergrößert.
- Die Java 5 onward StringBuilder Klasse wird ebenfalls bereitgestellt, die der StringBuffer Klasse entspricht, jedoch für die Verwendung durch einen einzelnen Thread ausgelegt ist. StringBuilder ist schneller, da es keine Synchronisation durchführt.
Java StringBuffer-Konstruktoren
Es gibt vier Konstruktoren in der StringBuffer-Klasse.
- StringBuffer()– Konstruiert einen String-Puffer ohne Zeichen und einer anfänglichen Kapazität von 16 Zeichen.
StringBuffer sb = new StringBuffer();
- StringBuffer(int capacity)– Konstruiert einen String-Puffer ohne Zeichen und der angegebenen Anfangskapazität.
StringBuffer sb = new StringBuffer(30);
- StringBuffer(CharSequence seq)– Konstruiert einen String-Puffer, der dieselben Zeichen wie die angegebene CharSequence enthält.
Hier ist CharSequence eine Schnittstelle, die von CharBuffer, Segment, String, StringBuffer, StringBuilder implementiert wird. - StringBuffer(String str)– Konstruiert einen String-Puffer, der mit dem Inhalt des angegebenen Strings initialisiert wird.
StringBuffer sb = new StringBuffer("Hello");
Beispiele für Java-StringBuffer-Methoden
Append-Methode
Die Append-Methode ist überladen, um Daten jeglicher Art zu akzeptieren. Diese Methode hängt die Zeichenfolgendarstellung des angegebenen Datentyps an den vorhandenen Puffer an. Die append-Methode fügt diese Zeichen immer am Ende des Puffers hinzu.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.append(" "); sb.append("World").append(" ").append(123); System.out.println("Appended String- " + sb.toString()); }}
Ausgabe
Appended String- Hello World 123
Wie Sie dem Beispiel entnehmen können, wird append mit String als Argument und auch int als Argument verwendet, da es für diese Datentypen überladen ist. Sie können die Append-Methode auch wie in dieser Codezeile verketten –
sb.append("World").append(" ").append(123)
Mit der Append-Methode können wir auch die Anweisung überprüfen, dass die Zeichenfolge unveränderlich ist, wobei as StringBuffer veränderbar ist. Im Beispiel wird ein StringBuffer-Objekt erstellt, an das Werte angehängt und die zurückgegebene Referenz in einem anderen StringBuffer gespeichert werden.
Genauso wie ein String erstellt und Werte angehängt werden, wird der zurückgegebene String auch von einem anderen String referenziert.
Wenn Sie die Gleichheit zweier StringBuffer Referenzen überprüfen, können Sie sehen, dass beide gleich sind, während für String beide unterschiedlich sind.
public class StringLiteral {public static void main(String args) {// With StringBufferSystem.out.println("StringBuffer...");StringBuffer sb = new StringBuffer("Hello");sb.append(" ");StringBuffer newsb = sb.append("World").append(" ").append(123);if (sb == newsb) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}// With StringSystem.out.println("String...");String str = "Hello";String newstr = str.concat(" ").concat("World").concat(" ").concat("123");if (str == newstr) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}}}
Ausgabe
StringBuffer...Reference is sameString...Reference is different
Einfügemethode
Die Einfügemethode ist überladen, um Daten jeglicher Art zu akzeptieren. Diese Methode wird verwendet, um die Zeichenfolgendarstellung des angegebenen Datentyps in den vorhandenen Puffer einzufügen. Die insert-Methode fügt die Zeichen an einem bestimmten Punkt hinzu.
insert-Methode nimmt zwei Argumente zuerst eine ganze Zahl, die die Position angibt, wo Zeichen in den Puffer eingefügt werden sollen und das zweite Argument ist der Text eingefügt werden.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Knp"); sb.insert(3, "Code"); System.out.println("String after insert- " + sb); }}
Ausgabe
String after insert- KnpCode
Längen– und Kapazitätsmethoden
capacity()- Gibt die aktuelle Kapazität des StringBuffers zurück.
length()– Gibt die Anzahl der Zeichen in dieser Sequenz zurück.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer(30); sb.append("Hello"); System.out.println("Capacity of StringBuffer- " + sb.capacity()); System.out.println("Length of StringBuffer- " + sb.length()); }}
Ausgabe
Capacity of StringBuffer- 30Length of StringBuffer- 5
Wie Sie sehen können, wird StringBuffer mit der Kapazität 30 erstellt, sodass die Kapazität als 30 angezeigt wird, wobei die Anzahl der Zeichen im Puffer 5 beträgt, sodass die Länge als 5 angezeigt wird.
delete und deleteCharAt Methoden
- delete(int start, int end)– Entfernt die Zeichen in einem Teilstring dieser Sequenz. start, der angibt, dass der Anfangsindex inklusiv ist, während as end angibt, dass der Endindex exklusiv ist.
- deleteCharAt(int index)– Entfernt das Zeichen an der angegebenen Position in dieser Sequenz.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.delete(1, 4); System.out.println("After deletion- " + sb); System.out.println("Length of StringBuffer- " + sb.length()); }}
Ausgabe
After deletion- HoLength of StringBuffer- 2
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.deleteCharAt(4);System.out.println("After deletion- " + sb);System.out.println("Length of StringBuffer- " + sb.length());}}
Ausgabe
After deletion- HellLength of StringBuffer- 4
Java StringBuffer reverse Methode
reverse() – Kehrt den vorhandenen StringBuffer um.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");System.out.println("Reversed- " + sb.reverse());}}
Ausgabe
Reversed- olleH
Java StringBuffer Replace–Methode
replace(int start, int end, String str)- Ersetzt die Zeichen in einer Teilzeichenfolge dieser Sequenz (Anfang bis Ende-1) durch Zeichen in der angegebenen Zeichenfolge.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}
Ausgabe
String- Helena
- Java StringBuilder Mit Methodenbeispielen
- Warum String in Java unveränderlich ist
- Ist Java String Thread Safe
- Java String intern() Methode
- Java String split() Methode
- Kompakte Zeichenfolgen in Java 9
- Finden Sie die Länge der Zeichenfolge ohne die Methode length() in Java
- Konvertieren Sie Char in String Und String in Char in Java
Das ist alles für das Thema Java StringBuffer Mit Methodenbeispielen. Wenn etwas fehlt oder Sie etwas zu dem Thema zu teilen haben, schreiben Sie bitte einen Kommentar.
Das könnte Sie auch interessieren