summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/html/k100074.html
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/html/k100074.html
downloadStudium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz
Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100074.html')
-rw-r--r--Master/Reference Architectures and Patterns/hjp5/html/k100074.html332
1 files changed, 332 insertions, 0 deletions
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 @@
+<html>
+<head>
+<title>
+Handbuch der Java-Programmierung, 5. Auflage
+</title>
+</head>
+<body>
+<a name="startofbody"></a>
+<script language="JavaScript" src="hjp4lib.js">
+</script>
+<script language="JavaScript">
+installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100070.html;106,k100073.html;107,k100075.html;108,k100078.html");
+</script>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100070.html">&nbsp;&lt;&lt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100073.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100075.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html">&nbsp;&gt;&gt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
+<td align="right">Kapitel 11 - Strings
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel2id011004"></a>
+<h2>11.4 Die Klasse StringBuilder<a name="ixa100690"></a> </h2>
+<hr>
+<ul>
+<li><a href="k100074.html#sectlevel2id011004">11.4 Die Klasse StringBuilder</a>
+<ul>
+<li><a href="k100074.html#sectlevel3id011004001">11.4.1 Konstruktoren</a>
+<li><a href="k100074.html#sectlevel3id011004002">11.4.2 Einf&uuml;gen von Elementen</a>
+<li><a href="k100074.html#sectlevel3id011004003">11.4.3 L&ouml;schen von Elementen</a>
+<li><a href="k100074.html#veraendernstringbuilder">11.4.4 Ver&auml;ndern von Elementen</a>
+<li><a href="k100074.html#sectlevel3id011004005">11.4.5 L&auml;ngeninformationen</a>
+<li><a href="k100074.html#sectlevel3id011004006">11.4.6 Konvertierung in einen String</a>
+</ul>
+</ul>
+<hr>
+
+<p>
+Da Objekte des Typs <font color="#000077"><tt>String</tt></font> nicht
+dynamisch sind und <font color="#000077"><tt>String</tt></font>-Manipulationen
+immer zu neuen &#187;Kopien&#171; des Ursprungsobjektes f&uuml;hren,
+entwickelten die Java Ingenieure eine Klasse, die die dynamische Verkettung
+von <font color="#000077"><tt>String</tt></font>-Objekten gestattet.
+Bereits im JDK 1.0 war hierf&uuml;r die Klasse <a href="index_s.html#ixb100119"><font color=#000080><tt>StringBuffer</tt></font></a>
+enthalten, die mit dem JDK 5 durch den <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+abgel&ouml;st wurde. Beide k&ouml;nnen verwendet werden, um Zeichenketten
+zu Manipulieren oder &#187;St&uuml;ck f&uuml;r St&uuml;ck&#171; zusammenzusetzen.
+
+
+<!-- Section -->
+<a name="sectlevel3id011004001"></a>
+<h3>11.4.1 Konstruktoren </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+StringBuilder()
+
+StringBuilder(String s)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/StringBuilder.html" onClick="this.href=getApiDoc('java.lang.StringBuilder')"><font color="#660066" size=-1>java.lang.StringBuilder</font></a></td>
+</tr>
+</table>
+
+<p>
+Der parameterlose Konstruktor erzeugt einen leeren <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>.
+Wird dagegen ein <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+&uuml;bergeben, erzeugt der Konstruktor ein <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekt,
+das eine Kopie der &uuml;bergebenen Zeichenkette darstellt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Die Klasse <font color="#000077"><tt>StringBuilder</tt></font> wurde
+mit Java 5 eingef&uuml;hrt, davor verwendete man die - immer noch
+in der Bibliothek vorhandene - Klasse <font color="#000077"><tt>StringBuffer</tt></font>
+<a name="ixa100691"></a>. Beide besitzen die gleichen Methoden. Die
+Klasse <font color="#000077"><tt>StringBuilder</tt></font> ist eine
+Neuimplementierung der &#187;alten&#171; Klasse und arbeitet auf den
+meisten Plattformen schneller und ressourcenschonender. Dies hat sie
+vor allem dem Umstand zu verdanken, dass sie nicht f&uuml;r nebenl&auml;ufige
+Zugriffe, wie sie in <a href="k100143.html#kapitelmultithreading">Kapitel 22</a>
+beschrieben werden, konzipiert ist. Solange wir also nicht mit mehreren
+Threads arbeiten werden wir die Klasse <font color="#000077"><tt>StringBuilder</tt></font>
+verwenden.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#FF9900">
+<tr>
+<td><font color="#FFFFFF">&nbsp;JDK1.1-6.0&nbsp;</font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id011004002"></a>
+<h3>11.4.2 Einf&uuml;gen von Elementen </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+StringBuilder append(String s)
+
+StringBuilder insert(int offset, String s)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/StringBuilder.html" onClick="this.href=getApiDoc('java.lang.StringBuilder')"><font color="#660066" size=-1>java.lang.StringBuilder</font></a></td>
+</tr>
+</table>
+
+<p>
+Mit <a name="ixa100692"><a href="index_a.html#ixb100546"><font color=#000080><tt>append</tt></font></a></a>
+wird der String <font color="#000077"><tt>s</tt></font> an das Ende
+des <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekts
+angeh&auml;ngt. Zur&uuml;ckgegeben wird das auf diese Weise verl&auml;ngerte
+<a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekt
+<font color="#000077"><tt>s</tt></font>. Zus&auml;tzlich gibt es die
+Methode <a href="index_a.html#ixb100546"><font color=#000080><tt>append</tt></font></a>
+in Varianten f&uuml;r das Anh&auml;ngen aller Arten von primitiven
+Typen. Anstelle eines <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Objekts
+wird hier der entsprechende primitive Typ &uuml;bergeben, in einen
+String konvertiert und an das Ende des Objekts angeh&auml;ngt.
+
+<p>
+<a name="ixa100693"><a href="index_i.html#ixb100547"><font color=#000080><tt>insert</tt></font></a></a>
+f&uuml;gt den String <font color="#000077"><tt>s</tt></font> an der
+Position <font color="#000077"><tt>offset</tt></font> in den aktuellen
+<a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+ein. Zur&uuml;ckgegeben wird das auf diese Weise verl&auml;ngerte
+<a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekt
+<font color="#000077"><tt>s</tt></font>. Auch diese Methode gibt es
+f&uuml;r primitive Typen. Der anstelle eines <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+&uuml;bergebene Wert wird zun&auml;chst in einen <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+konvertiert und dann an der gew&uuml;nschten Stelle eingef&uuml;gt.
+
+
+<!-- Section -->
+<a name="sectlevel3id011004003"></a>
+<h3>11.4.3 L&ouml;schen von Elementen </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public StringBuilder deleteCharAt(int index)
+public StringBuilder delete(int start, int end)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/StringBuilder.html" onClick="this.href=getApiDoc('java.lang.StringBuilder')"><font color="#660066" size=-1>java.lang.StringBuilder</font></a></td>
+</tr>
+</table>
+
+<p>
+Mit <a name="ixa100694"><a href="index_d.html#ixb100548"><font color=#000080><tt>deleteCharAt</tt></font></a></a>
+wird das an Position <font color="#000077"><tt>index</tt></font> stehende
+Zeichen entfernt und der <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+um ein Zeichen verk&uuml;rzt. <a name="ixa100695"><a href="index_d.html#ixb100549"><font color=#000080><tt>delete</tt></font></a></a>
+entfernt den Teilstring, der von Position <font color="#000077"><tt>start</tt></font>
+bis <font color="#000077"><tt>end</tt></font> reicht, aus dem <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+und verk&uuml;rzt ihn um die entsprechende Anzahl Zeichen.
+
+<!-- Section -->
+
+<a name="veraendernstringbuilder"></a>
+<h3>11.4.4 Ver&auml;ndern von Elementen </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+void setCharAt(int index, char c)
+ throws StringIndexOutOfBoundsException
+
+public StringBuilder replace(int start, int end, String str)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/StringBuilder.html" onClick="this.href=getApiDoc('java.lang.StringBuilder')"><font color="#660066" size=-1>java.lang.StringBuilder</font></a></td>
+</tr>
+</table>
+
+<p>
+Mit der Methode <a name="ixa100696"><a href="index_s.html#ixb100550"><font color=#000080><tt>setCharAt</tt></font></a></a>
+wird das an Position <font color="#000077"><tt>index</tt></font> stehende
+Zeichen durch das Zeichen <font color="#000077"><tt>c</tt></font>
+ersetzt. Falls der <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+zu kurz ist (also <font color="#000077"><tt>index</tt></font> hinter
+das Ende des <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekts
+zeigt), l&ouml;st die Methode eine Ausnahme des Typs <a name="ixa100697"><a href="index_s.html#ixb100523"><font color=#000080><tt>StringIndexOutOfBoundsException</tt></font></a></a>
+aus.
+
+<!-- Section -->
+
+<a name="sectlevel3id011004005"></a>
+<h3>11.4.5 L&auml;ngeninformationen </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+int length()
+
+public int capacity()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/StringBuilder.html" onClick="this.href=getApiDoc('java.lang.StringBuilder')"><font color="#660066" size=-1>java.lang.StringBuilder</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa100698"><a href="index_l.html#ixb100275"><font color=#000080><tt>length</tt></font></a></a>
+liefert die L&auml;nge des Objekts, also die Anzahl der Zeichen, die
+im <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+enthalten sind. Mit <a name="ixa100699"><a href="index_c.html#ixb100551"><font color=#000080><tt>capacity</tt></font></a></a>
+wird die Gr&ouml;&szlig;e des belegten Pufferspeichers ermittelt.
+Dieser Wert ist typischerweise gr&ouml;&szlig;er als der von <a href="index_l.html#ixb100275"><font color=#000080><tt>length</tt></font></a>
+zur&uuml;ckgegebene Wert.
+
+<!-- Section -->
+
+<a name="sectlevel3id011004006"></a>
+<h3>11.4.6 Konvertierung in einen String </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String toString()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/StringBuilder.html" onClick="this.href=getApiDoc('java.lang.StringBuilder')"><font color="#660066" size=-1>java.lang.StringBuilder</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa100700"></a> Nachdem die Konstruktion eines <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekts
+abgeschlossen ist, kann es mit Hilfe dieser Methode effizient in einen
+<a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+verwandelt werden. Die Methode legt dabei keine Kopie des <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>-Objekts
+an, sondern liefert einen Zeiger auf den internen Zeichenpuffer. Erst
+wenn der <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+erneut ver&auml;ndert werden soll, wird tats&auml;chlich eine Kopie
+erzeugt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Die sinnvolle Anwendung der Klassen <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+und <a href="index_s.html#ixb100545"><font color=#000080><tt>StringBuilder</tt></font></a>
+hat bei vielen Programmen gro&szlig;en Einfluss auf ihr Laufzeitverhalten.
+In <a href="k100312.html#kapiteltuning">Kapitel 50</a> gehen wir daher
+noch einmal auf die speziellen Performanceaspekte beider Klassen ein
+und geben Hinweise zu ihrer sinnvollen Anwendung.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF">&nbsp;Hinweis&nbsp;</font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
+Wesley, Version 5.0.1
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100070.html">&nbsp;&lt;&lt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100073.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100075.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html">&nbsp;&gt;&gt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
+<td align="right">&copy; 1998, 2007 Guido Kr&uuml;ger &amp; Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>