String -Objekte sind unveränderlich. Jedes Mal, wenn Sie eine der Methoden im System -String -Klasse verwenden, müssen Sie ein neues String -Objekt im Speicher erstellen, das den neuen Speicherplatz für das neue Objekt zuordnen muss. Der Systemaufwand, der dem Erstellen eines neuen String -Objekts zugeordnet ist, kann in Situationen, in denen wiederholte Änderungen an der Zeichenfolge durchgeführt werden müssen, sehr teuer sein. Wenn Sie eine Zeichenfolge ändern möchten, ohne ein neues Objekt zu erstellen, können Sie die Klasse des Systems verwenden. Die Verwendung der StringBuilder -Klasse kann beispielsweise die Leistung verbessern, wenn viele Zeichenfolgen in einer Schleife zusammengeschmissen werden.
Durch Initialisierung der Variablen mit einer überlasteten Konstruktormethode kann eine neue Instanz der StringBuilder -Klasse erstellt werden, wie im folgenden Beispiel erläutert.
StringBuilder mystringbuilder = new StringBuilder ("Hallo Welt!");(I) Kapazität und Länge festlegen
Obwohl das StringBuilder -Objekt ein dynamisches Objekt ist, das die Anzahl der Zeichen in dem von ihm verkauften Zeichenfolge ermöglicht, können Sie einen Wert für die maximale Anzahl von Zeichen angeben, die er halten kann. Dieser Wert wird als Kapazität des Objekts bezeichnet und sollte nicht mit der Stringlänge verwechselt werden, die das aktuelle StringBuilder -Objekt hält. Sie können beispielsweise eine neue Instanz der StringBuilder -Klasse mit der Zeichenfolge "Hallo" (Länge 5) erstellen, während Sie angeben, dass die maximale Kapazität des Objekts 25 beträgt. Wenn ein StringBuilder geändert wird, wird der Platz nicht für sich selbst umverletzt, wenn die Kapazität erreicht ist. Wenn die Kapazität erreicht ist, wird automatisch ein neuer Raum zugewiesen und die Kapazität wird verdoppelt. Sie können einen der überlasteten Konstruktoren verwenden, um die Kapazität der StringBuilder -Klasse anzugeben. Das folgende Codebeispiel gibt an, dass das MyStringBuilder -Objekt auf maximal 25 Rohlinge erweitert werden kann.
StringBuilderMyStringBuilder = new StringBuilder ("Hallo Welt!", 25); Zusätzlich kann die maximale Länge des Objekts mit der Eigenschaft Lese-/Schreibkapazität eingestellt werden. Das folgende Codebeispiel verwendet die Kapazitätseigenschaft, um die maximale Länge eines Objekts zu definieren.
MyStringBuilder.Capacity = 25;
(Ii) Im Folgenden sind mehrere gängige Methoden dieser Art aufgeführt:
(1) Mit der Anhangsmethode kann eine String -Darstellung eines Textes oder Objekts zum Ende einer Zeichenfolge hinzugefügt werden, die durch das aktuelle StringBuilder -Objekt dargestellt wird. Das folgende Beispiel initialisiert ein StringBuilder -Objekt in "Hello World" und findet dann einen Text bis zum Ende des Objekts an. Der Platz wird nach Bedarf automatisch zugewiesen.
StringBuilderMyStringBuilder = new StringBuilder ("Hallo Welt!");In diesem Beispiel wird Hello World angezeigt! Was für ein abstärkerer Tag. zur Konsole.
(2) Die AppendFormat -Methode fügt Text zum Ende des StringBuilders hinzu und implementiert die immatherabbare Schnittstelle, sodass sie die im Abschnitt Formatierung beschriebenen Standardformat -Zeichenfolgen akzeptieren können. Sie können diese Methode verwenden, um das Format der Variablen anzupassen und diese Werte an der Rückseite des StringBuilders anzuhängen. Das folgende Beispiel verwendet die AppendFormat -Methode, um einen Ganzzahlwert für das Währungswertformat an das Ende des StringBuilders zu platzieren.
int myInt = 25; StringBuilder mystringBuilder = new StringBuilder ("Deine Gesamtzahl ist"); MyStringBuilder.AppendFormat ("{0: c}", myint); console.writeLine (mystringbuilder);In diesem Beispiel wird Ihre Gesamtsumme in Höhe von 25,00 USD für die Konsole angezeigt.
(3) In der Methode Insert fügt der angegebenen Position im aktuellen StringBuilder eine Zeichenfolge oder ein Objekt hinzu. Das folgende Beispiel verwendet diese Methode, um ein Wort in die sechste Position des StringBuilders einzulegen.
StringBuilderMyStringBuilder = new StringBuilder ("Hallo Welt!");Dieses Beispiel zeigt Hallo Beautifulworld! zur Konsole.
(4) Sie können mit der Methode entfernen, um eine angegebene Anzahl von Zeichen aus dem aktuellen StringBuilder zu entfernen, und der Entfernungsprozess beginnt mit dem angegebenen Index von Null. Das folgende Beispiel verwendet die Methode entfernen, um den StringBuilder zu verkürzen.
StringBuilderMyStringBuilder = new StringBuilder ("Hallo Welt!");In diesem Beispiel wird Hello in der Konsole angezeigt.
(5) Mit der Ersatzmethode können Sie die Zeichen im StringBuilder -Objekt durch ein anderes angegebenes Zeichen ersetzen. Das folgende Beispiel verwendet die Methode Ersetzen, um nach StringBuilder -Objekten zu suchen, alle Ausrufezeichen zu finden (!) Und Ersetzen Sie sie durch Fragemark -Zeichen (?).
StringBuilderMyStringBuilder = new StringBuilder ("Hallo Welt!");Dieses Beispiel zeigt Hello World? zur Konsole
GetQlMapclientTemplate (). queryForList ((neuer StringBuilder ()). append (entityClass.getName ()). append (". Select"). toString (), null);Javas StringBuilder -Klasse
Wenn das Programm einen häufigen Bedarf an zusätzlichen Zeichenfolgen hat, wird nicht empfohlen, + für die Verkettung von Zeichenfolgen zu verwenden. Sie können in Betracht ziehen, die Klasse von Java.lang.StringBuilder zu verwenden. Die mit dieser Klasse generierten Objekte haben standardmäßig eine Länge von 16 Zeichen. Sie können auch die anfängliche Länge selbst angeben. Wenn die angehängten Zeichen die akkommodierbare Länge überschreiten, erhöht das StringBuilder -Objekt automatisch die Länge, um die angeschlossenen Zeichen aufzunehmen. Wenn die Strings häufig angeschlossen werden muss, kann die Verwendung der StringBuilder -Klasse die Effizienz erheblich verbessern. Der folgende Code:
Java -Code
public class appendStest {public static void main (String [] args) {String text = ""; langer BeginTime = System.currentTimemillis (); für (int i = 0; i <10000; i ++) text = text+i; Long EndTime = System.currentTimemillis (); System.out.println ("Ausführungszeit:" +(Endime-Time-Tintime)); StringBuilder sb = new StringBuilder (""); BeginTime = System.currentTimemillis (); für (int i = 0; i <10000; i ++) sb.Append (String.Valueof (i)); EndTime = System.currentTimemillis (); System.out.println ("Ausführungszeit:" +(Endime-Time-Tintime)); }} public class appendStest {public static void main (String [] args) {String text = ""; langer BeginTime = System.currentTimemillis (); für (int i = 0; i <10000; i ++) text = text+i; Long EndTime = System.currentTimemillis (); System.out.println ("Ausführungszeit:"+(Endime-Time-Tintime)); StringBuilder sb = new StringBuilder (""); BeginTime = System.currentTimemillis (); für (int i = 0; i <10000; i ++) sb.Append (String.Valueof (i)); EndTime = System.currentTimemillis (); System.out.println ("Ausführungszeit:"+(Endime-Time-Tintime)); }}Dieser Code gibt aus:
Ausführungszeit: 3188
Ausführungszeit: 15
StringBuilder ist eine neue Klasse, die nur zu J2SE1.5.0 hinzugefügt wurde. Wenn die vorherige Version die gleichen Anforderungen hatte, wird Java.util.StringBuffer verwendet. In der Tat ist StringBuilder so konzipiert, dass es die gleiche Betriebsoberfläche wie StringBuffer hat. Die Verwendung von StringBuilder in einer eigenständigen Nicht-Thread-Situation hat eine bessere Effizienz, da StringBuilder keine Synchronisationsprobleme behandelt. StringBuffer behandelt Synchronisationsprobleme. Wenn StringBuilder unter mehreren Threads betrieben wird, sollten Sie StringBuffer verwenden, um das Objekt Synchronisierungsprobleme selbst verwalten zu lassen.
Die obige kurze Analyse der Verwendung von StringBuilder in Java ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.