String ist eine invariante Klasse. Durch die Verwendung von String, um eine Zeichenfolge zu ändern, wird ein neues String -Objekt erstellt. Wenn es häufig geändert wird, werden viele String -Objekte erzeugt, was sehr teuer ist. Daher bietet Java eine StringBuffer -Klasse an, die bei der Änderung von Zeichenfolgen viel effizienter als Zeichenfolge ist.
Es gibt 3 Klassen in Java, die für Charakteroperationen verantwortlich sind.
public class usingStringBuffer { / *** passende Zeichenfolge finden* / public static void testfindstr () {StringBuffer sb = new StringBuffer (); SB.Append ("Dies ist ein StringBuffer"); // Gibt die Position zurück, in der das Substring zuerst in der Zeichenfolge erscheint. Wenn es nicht vorhanden ist, geben Sie das negative Zahlensystem zurück. // Parameter für die Index -Methode festlegen und das passende Startpositionssystem angeben. // Gibt die letzte Position des Substring in der Zeichenfolge zurück. Wenn es nicht vorhanden ist, geben Sie das negative Zahlensystem zurück. // Parameter für die letzte Methode festlegen und das passende Endpositionssystem angeben. } / *** Abfangen die String* / public static void testSubstr () {StringBuffer sb = new StringBuffer (); SB.Append ("Dies ist ein StringBuffer"); // Die Standardabschlussposition ist das Ende des String Systems.out.print ("sb.substring (4) =" + sb.substring (4)); // Die Substring -Methode fängt die Zeichenfolge ab, die die Startposition und die Terminierungsposition des Intercept Systems angeben kann. } / ** * Holen Sie die Zeichen an einer bestimmten Position in der Zeichenfolge * / public static void testaratstr () {StringBuffer sb = new StringBuffer ("Dies ist ein StringBuffer"); System.out.println (sb.charat (sb.length () - 1)); } / *** Fügen Sie dem Schwanz der String* / public static void testAppend () {StringBuffer sb = new StringBuffer ("Dies ist ein StringBuffer!"). sb.Append (1.23f); System.out.println (sb.toString ()); } / *** Daten in String* / public static void testDelete () {StringBuffer sb = new StringBuffer ("Dies ist ein StringBuffer!"); sb.delete (0, 5); sb.Deletecharat (sb.length () - 1); System.out.println (sb.toString ()); } / *** Fügen Sie verschiedene Arten von Daten in Zeichenfolgen ein* / public static void TestInsert () {StringBuffer sb = new StringBuffer ("Dies ist ein StringBuffer!"); // kann Zeichen, Zeichenarrays, Zeichenfolgen und verschiedene Zahlen und boolesche Werte an angegebenen Positionen sb.insert (2, 'w') einfügen; sb.insert (3, new char [] {'a', 'b', 'c'}); sb.insert (8, "ABC"); sb.insert (2, 3); sb.insert (3, 2,3f); sb.insert (6, 3,75d); sb.insert (5, 9843l); sb.insert (2, true); System.out.println ("TestInsert:" + sb.toString ()); } / *** Ersetzen Sie einige Zeichen in einer Zeichenfolge* / public static void testReplace () {StringBuffer SB = new StringBuffer ("Dies ist ein StringBuffer!"); // Ersetzen Sie ein bestimmtes Zeichen in einer Zeichenfolge durch eine andere Zeichenfolge sb.replace (10, sb.length (), "Integer"); System.out.println ("Testreplace:" + sb.toString ()); } / *** Reverse String* / public static void ReverseStr () {StringBuffer sb = new StringBuffer ("Dies ist ein StringBuffer!"); System.out.println (Sb.Reverse ()); // Reverse -Methode kehrt String}} um Zusammenfassung:
StringBuffer ist keine invariante Klasse. Beim Ändern des Inhalts einer Zeichenfolge werden keine neuen Objekte erstellt. Daher ist es besser zum Ändern von Zeichenfolgen als für Stringklassen geeignet.
Die StringBuffer -Klasse liefert nicht die gleiche ToCharray -Methode wie String.
Die Ersatzmethode der StringBuffer -Klasse unterscheidet sich von der Ersatzmethode der String -Klasse. Die Ersatzmethode hat drei Parameter. Der erste Parameter gibt die Startposition des ersetzten Substring an, der zweite Parameter die Endposition des ersetzten Substring an, und der dritte Parameter gibt die neue Substring an.
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.