From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100074.html | 332 +++++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100074.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100074.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100074.html b/Master/Reference Architectures and Patterns/hjp5/html/k100074.html new file mode 100644 index 0000000..86a1ed1 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100074.html @@ -0,0 +1,332 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 11 - Strings +
+
+ + + + +

11.4 Die Klasse StringBuilder

+
+ +
+ +

+Da Objekte des Typs String nicht +dynamisch sind und String-Manipulationen +immer zu neuen »Kopien« des Ursprungsobjektes führen, +entwickelten die Java Ingenieure eine Klasse, die die dynamische Verkettung +von String-Objekten gestattet. +Bereits im JDK 1.0 war hierfür die Klasse StringBuffer +enthalten, die mit dem JDK 5 durch den StringBuilder +abgelöst wurde. Beide können verwendet werden, um Zeichenketten +zu Manipulieren oder »Stück für Stück« zusammenzusetzen. + + + + +

11.4.1 Konstruktoren

+

+ + + + + +
+ +
+StringBuilder()
+
+StringBuilder(String s)
+
+
+
+java.lang.StringBuilder
+ +

+Der parameterlose Konstruktor erzeugt einen leeren StringBuilder. +Wird dagegen ein String +übergeben, erzeugt der Konstruktor ein StringBuilder-Objekt, +das eine Kopie der übergebenen Zeichenkette darstellt. +

+ + + + + + + + + + + +
+ +

+Die Klasse StringBuilder wurde +mit Java 5 eingeführt, davor verwendete man die - immer noch +in der Bibliothek vorhandene - Klasse StringBuffer +. Beide besitzen die gleichen Methoden. Die +Klasse StringBuilder ist eine +Neuimplementierung der »alten« Klasse und arbeitet auf den +meisten Plattformen schneller und ressourcenschonender. Dies hat sie +vor allem dem Umstand zu verdanken, dass sie nicht für nebenläufige +Zugriffe, wie sie in Kapitel 22 +beschrieben werden, konzipiert ist. Solange wir also nicht mit mehreren +Threads arbeiten werden wir die Klasse StringBuilder +verwenden.

+ + + + +
 JDK1.1-6.0 
+
+ + + + +

11.4.2 Einfügen von Elementen

+

+ + + + + +
+ +
+StringBuilder append(String s)
+
+StringBuilder insert(int offset, String s)
+
+
+
+java.lang.StringBuilder
+ +

+Mit append +wird der String s an das Ende +des StringBuilder-Objekts +angehängt. Zurückgegeben wird das auf diese Weise verlängerte +StringBuilder-Objekt +s. Zusätzlich gibt es die +Methode append +in Varianten für das Anhängen aller Arten von primitiven +Typen. Anstelle eines String-Objekts +wird hier der entsprechende primitive Typ übergeben, in einen +String konvertiert und an das Ende des Objekts angehängt. + +

+insert +fügt den String s an der +Position offset in den aktuellen +StringBuilder +ein. Zurückgegeben wird das auf diese Weise verlängerte +StringBuilder-Objekt +s. Auch diese Methode gibt es +für primitive Typen. Der anstelle eines String +übergebene Wert wird zunächst in einen String +konvertiert und dann an der gewünschten Stelle eingefügt. + + + + +

11.4.3 Löschen von Elementen

+

+ + + + + +
+ +
+public StringBuilder deleteCharAt(int index)
+public StringBuilder delete(int start, int end)
+
+
+
+java.lang.StringBuilder
+ +

+Mit deleteCharAt +wird das an Position index stehende +Zeichen entfernt und der StringBuilder +um ein Zeichen verkürzt. delete +entfernt den Teilstring, der von Position start +bis end reicht, aus dem StringBuilder +und verkürzt ihn um die entsprechende Anzahl Zeichen. + + + + +

11.4.4 Verändern von Elementen

+

+ + + + + +
+ +
+void setCharAt(int index, char c)
+  throws StringIndexOutOfBoundsException
+
+public StringBuilder replace(int start, int end, String str)
+
+
+
+java.lang.StringBuilder
+ +

+Mit der Methode setCharAt +wird das an Position index stehende +Zeichen durch das Zeichen c +ersetzt. Falls der StringBuilder +zu kurz ist (also index hinter +das Ende des StringBuilder-Objekts +zeigt), löst die Methode eine Ausnahme des Typs StringIndexOutOfBoundsException +aus. + + + + +

11.4.5 Längeninformationen

+

+ + + + + +
+ +
+int length()
+
+public int capacity()
+
+
+
+java.lang.StringBuilder
+ +

+length +liefert die Länge des Objekts, also die Anzahl der Zeichen, die +im StringBuilder +enthalten sind. Mit capacity +wird die Größe des belegten Pufferspeichers ermittelt. +Dieser Wert ist typischerweise größer als der von length +zurückgegebene Wert. + + + + +

11.4.6 Konvertierung in einen String

+

+ + + + + +
+ +
+String toString()
+
+
+
+java.lang.StringBuilder
+ +

+ Nachdem die Konstruktion eines StringBuilder-Objekts +abgeschlossen ist, kann es mit Hilfe dieser Methode effizient in einen +String +verwandelt werden. Die Methode legt dabei keine Kopie des StringBuilder-Objekts +an, sondern liefert einen Zeiger auf den internen Zeichenpuffer. Erst +wenn der StringBuilder +erneut verändert werden soll, wird tatsächlich eine Kopie +erzeugt. +

+ + + + + + + + + +
+ +

+Die sinnvolle Anwendung der Klassen String +und StringBuilder +hat bei vielen Programmen großen Einfluss auf ihr Laufzeitverhalten. +In Kapitel 50 gehen wir daher +noch einmal auf die speziellen Performanceaspekte beider Klassen ein +und geben Hinweise zu ihrer sinnvollen Anwendung.

+ + + + +
 Hinweis 
+
+


+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3