diff options
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100072.html')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/html/k100072.html | 793 |
1 files changed, 793 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100072.html b/Master/Reference Architectures and Patterns/hjp5/html/k100072.html new file mode 100644 index 0000000..1a74775 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100072.html @@ -0,0 +1,793 @@ +<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,k100071.html;107,k100073.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"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100070.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100071.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100073.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">Kapitel 11 - Strings
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel2id011002"></a>
+<h2>11.2 Methoden der Klasse String </h2>
+<hr>
+<ul>
+<li><a href="k100072.html#sectlevel2id011002">11.2 Methoden der Klasse String</a>
+<ul>
+<li><a href="k100072.html#sectlevel3id011002001">11.2.1 Konstruktoren</a>
+<li><a href="k100072.html#sectlevel3id011002002">11.2.2 Zeichenextraktion</a>
+<li><a href="k100072.html#sectlevel3id011002003">11.2.3 Die Länge der Zeichenkette</a>
+<li><a href="k100072.html#vergleichzeichenketten">11.2.4 Vergleichen von Zeichenketten</a>
+<li><a href="k100072.html#sectlevel3id011002005">11.2.5 Suchen in Zeichenketten</a>
+<li><a href="k100072.html#sectlevel3id011002006">11.2.6 Ersetzen von Zeichenketten</a>
+<li><a href="k100072.html#stringzerlegen">11.2.7 Ersetzen von Zeichenketten</a>
+<li><a href="k100072.html#sectlevel3id011002008">11.2.8 Konvertierungsfunktionen</a>
+</ul>
+</ul>
+<hr>
+
+<p>
+Die Klasse <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+definiert eine Vielzahl von Methoden zur Manipulation und zur Bestimmung
+der Eigenschaften von Zeichenketten. Da Strings und die auf ihnen
+definierten Operationen bei der Anwendung einer Programmiersprache
+ein wichtiges und für die Effizienz der Programmentwicklung kritisches
+Merkmal sind, sollen hier die wichtigsten String-Operationen vorgestellt
+werden. Weitere Methoden dieser Klasse können den Referenzhandbüchern
+der Java-Klassenbibliothek oder der Online-Hilfe entnommen werden.
+
+
+<!-- Section -->
+<a name="sectlevel3id011002001"></a>
+<h3>11.2.1 Konstruktoren </h3>
+
+<p>
+Die Klasse <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+bietet eine Reihe von Möglichkeiten, neue Instanzen zu erzeugen.
+Neben der bereits in <a href="k100022.html#kapiteldatentypen">Kapitel 4</a>
+erläuterten Initialisierung mit Hilfe von Literalen besitzt die
+Klasse eine Reihe von Konstruktoren, die dazu verwendet werden können,
+<a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Objekte
+explizit zu erzeugen.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+Erzeugt ein leeres String-Objekt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String(String value)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+Erzeugt einen neuen String durch Duplizierung eines bereits vorhandenen.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String(char[] value)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+Erzeugt einen neuen String aus einem vorhandenen Zeichen-Array. Dabei
+werden alle Elemente des Arrays in den String übernommen.
+<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>
+Nachdem ein <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+erzeugt wurde, kann er wie jedes andere Objekt verwendet werden. Insbesondere
+erfolgt damit im Gegensatz zu C oder C++ das Speichermanagement vollautomatisch,
+ohne dass sich der Programmierer darum kümmern muss.</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"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id011002002"></a>
+<h3>11.2.2 <a name="ixa100660">Zeichenextraktion</a></h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+char charAt(int index)
+ throws StringIndexOutOfBoundsException
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa100661"></a>Liefert das Zeichen an Position <font color="#000077"><tt>index</tt></font>.
+Dabei hat das erste Element eines Strings den Index 0 und das letzte
+den Index <font color="#000077"><tt>length()-1</tt></font>. Falls
+der String kürzer als <font color="#000077"><tt>index + 1</tt></font>
+Zeichen ist, wird eine Ausnahme des Typs <a name="ixa100662"><a href="index_s.html#ixb100523"><font color=#000080><tt>StringIndexOutOfBoundsException</tt></font></a></a>
+erzeugt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String substring(int begin, int end)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa100663"></a> Liefert den Teilstring, der an Position <font color="#000077"><tt>begin</tt></font>
+beginnt und an Position <font color="#000077"><tt>end</tt></font>
+endet. Wie bei allen Zugriffen über einen numerischen Index beginnt
+auch hier die Zählung bei 0.
+<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>
+Ungewöhnlich bei der Verwendung dieser Methode ist die Tatsache,
+dass der Parameter <font color="#000077"><tt>end</tt></font> auf das
+erste Zeichen <i>hinter</i> den zu extrahierenden Teilstring verweist
+(siehe <a href="k100072.html#aufrufsubstring">Abbildung 11.1</a>).
+Der Rückgabewert ist also die Zeichenkette, die von Indexposition
+<font color="#000077"><tt>begin</tt></font> bis Indexposition <font color="#000077"><tt>end
+- 1</tt></font> reicht.</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"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+<p>
+<a name="aufrufsubstring"></a>
+<img src="images/StringSubstr.gif">
+<p>
+
+<p><i>
+Abbildung 11.1: Ein Aufruf von substring(begin, end)</i></p>
+
+<p>
+Es gibt noch eine zweite Variante der Methode <a name="ixa100663"><a href="index_s.html#ixb100524"><font color=#000080><tt>substring</tt></font></a></a>,
+die mit nur einem einzigen Parameter aufgerufen wird. Sie liefert
+den Teilstring von der angegebenen Position bis zum Ende des Strings.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String trim()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+Die Methode liefert den String, der entsteht, wenn auf beiden Seiten
+der Zeichenkette jeweils alle zusammenhängenden Leerzeichen entfernt
+werden. Dabei werden alle Zeichen, die einen Code kleiner gleich 32
+haben, als Leerzeichen angesehen. Leider gibt es keine separaten Methoden
+für das rechts- oder linksbündige Entfernen von Leerzeichen,
+<a name="ixa100664"><a href="index_t.html#ixb100525"><font color=#000080><tt>trim</tt></font></a></a>
+entfernt immer die Leerzeichen auf beiden Seiten. Da die Klasse <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>
+als <a href="index_f.html#ixb100401"><font color=#000080><tt>final</tt></font></a>
+deklariert wurde, gibt es auch keine Möglichkeit, entsprechende
+Methoden nachzurüsten.
+
+<!-- Section -->
+
+<a name="sectlevel3id011002003"></a>
+<h3>11.2.3 Die <a name="ixa100665">Länge der Zeichenkette</a>
+</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()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa100666"></a>Liefert die aktuelle Länge des <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Objekts.
+Ist der Rückgabewert 0, so bedeutet dies, dass der String leer
+ist. Wird ein Wert <i>n</i> größer 0 zurückgegeben,
+so enthält der String <i>n</i> Zeichen, die an den Indexpositionen
+0 bis <i>n</i> - 1 liegen.
+
+<p>
+Das folgende Beispiel zeigt die Verwendung der Methoden <a href="index_s.html#ixb100524"><font color=#000080><tt>substring</tt></font></a>
+und <a name="ixa100666"><a href="index_l.html#ixb100275"><font color=#000080><tt>length</tt></font></a></a>
+und der <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Verkettung
+<a name="ixa100667"></a> auf (letztere wird in <a href="k100073.html#stringfuercompiler">Abschnitt 11.3.2</a>
+noch einmal genauer behandelt).
+<a name="listingid011001"></a>
+
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
+<tr>
+<td valign=top>
+<font color="#000055">
+<pre>
+<font color="#555555">001 </font><font color="#00AA00">/* Listing1101.java */</font>
+<font color="#555555">002 </font>
+<font color="#555555">003 </font><font color="#0000AA">public</font> <font color="#0000AA">class</font> Listing1101
+<font color="#555555">004 </font>{
+<font color="#555555">005 </font> <font color="#0000AA">public</font> <font color="#0000AA">static</font> <font color="#006699">void</font> main(String[] args)
+<font color="#555555">006 </font> {
+<font color="#555555">007 </font> String s1;
+<font color="#555555">008 </font> s1 = <font color="#0000FF">"Auf der Mauer"</font>;
+<font color="#555555">009 </font> s1 += <font color="#0000FF">", auf der Lauer"</font>;
+<font color="#555555">010 </font> s1 += <font color="#0000FF">", sitzt \'ne kleine Wanze"</font>;
+<font color="#555555">011 </font> System.out.println(s1);
+<font color="#555555">012 </font>
+<font color="#555555">013 </font> <font color="#0000AA">for</font> (<font color="#006699">int</font> i = 1; i <= 5; ++i) {
+<font color="#555555">014 </font> s1 = s1.substring(0,s1.length()-1);
+<font color="#555555">015 </font> System.out.println(s1);
+<font color="#555555">016 </font> }
+<font color="#555555">017 </font> }
+<font color="#555555">018 </font>}</pre>
+</font>
+</td>
+<td valign=top align=right>
+<a href="../examples/Listing1101.java"><font color="#000055" size=-1>Listing1101.java</font></a></td>
+</tr>
+</table>
+<i>
+Listing 11.1: String-Verkettung und die Methode substring</i></p>
+
+<p>
+Die Ausgabe des Programms ist:
+<font color="#333300">
+<pre>
+Auf der Mauer, auf der Lauer, sitzt 'ne kleine Wanze
+Auf der Mauer, auf der Lauer, sitzt 'ne kleine Wanz
+Auf der Mauer, auf der Lauer, sitzt 'ne kleine Wan
+Auf der Mauer, auf der Lauer, sitzt 'ne kleine Wa
+Auf der Mauer, auf der Lauer, sitzt 'ne kleine W
+Auf der Mauer, auf der Lauer, sitzt 'ne kleine
+</pre>
+</font>
+
+
+<!-- Section -->
+<a name="vergleichzeichenketten"></a>
+<h3>11.2.4 <a name="ixa100668">Vergleichen von Zeichenketten</a></h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+boolean equals(Object anObject)
+boolean equalsIgnoreCase(String s)
+
+boolean startsWith(String s)
+boolean endsWith(String s)
+
+int compareTo(String s)
+
+boolean regionMatches(
+ int toffset,
+ String other,
+ int ooffset,
+ int len
+)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+<a name="ixa100669"><a href="index_e.html#ixb100223"><font color=#000080><tt>equals</tt></font></a></a>
+liefert <a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a>,
+wenn das aktuelle String-Objekt und <font color="#000077"><tt>anObject</tt></font>
+gleich sind. Analog zu der gleichnamigen Methode der Klasse <a href="index_o.html#ixb100224"><font color=#000080><tt>Object</tt></font></a>
+überprüft <a href="index_e.html#ixb100223"><font color=#000080><tt>equals</tt></font></a>
+also nicht, ob beide Strings dasselbe Objekt referenzieren, sondern
+testet auf inhaltliche Gleichheit. Interessant an <a href="index_e.html#ixb100223"><font color=#000080><tt>equals</tt></font></a>
+ist die Tatsache, dass als Parameter ein Objekt der Klasse <a href="index_o.html#ixb100224"><font color=#000080><tt>Object</tt></font></a>
+erwartet wird. <a href="index_e.html#ixb100223"><font color=#000080><tt>equals</tt></font></a>
+kann einen String also nicht nur mit einem anderen String vergleichen,
+sondern mit der String-Darstellung eines beliebigen Objekts.
+
+<p>
+Neben <a href="index_e.html#ixb100223"><font color=#000080><tt>equals</tt></font></a>
+gibt es noch eine ähnliche Methode, <a name="ixa100670"><a href="index_e.html#ixb100528"><font color=#000080><tt>equalsIgnoreCase</tt></font></a></a>,
+die eventuell vorhandene Unterschiede in der Groß-/Kleinschreibung
+beider Zeichenketten ignoriert.
+
+<p>
+<a name="ixa100671"><a href="index_s.html#ixb100529"><font color=#000080><tt>startsWith</tt></font></a></a>
+testet, ob das String-Objekt mit der Zeichenkette <font color="#000077"><tt>s</tt></font>
+beginnt. Ist das der Fall, so gibt die Methode <a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a>
+zurück, andernfalls <a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a>.
+<a name="ixa100672"><a href="index_e.html#ixb100530"><font color=#000080><tt>endsWith</tt></font></a></a>
+überprüft dagegen, ob das String-Objekt mit der Zeichenkette
+<font color="#000077"><tt>s</tt></font> endet. Ist das der Fall, gibt
+die Methode ebenfalls <a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a>
+zurück, andernfalls <a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a>.
+
+<p>
+Die wichtige Methode <a name="ixa100673"><a href="index_c.html#ixb100447"><font color=#000080><tt>compareTo</tt></font></a></a>
+führt einen <i>lexikalischen</i> Vergleich beider Strings durch.
+Bei einem lexikalischen Vergleich werden die Zeichen paarweise von
+links nach rechts verglichen. Tritt ein Unterschied auf oder ist einer
+der Strings beendet, wird das Ergebnis ermittelt. Ist das aktuelle
+String-Objekt dabei kleiner als <font color="#000077"><tt>s</tt></font>,
+wird ein negativer Wert zurückgegeben. Ist es größer,
+wird ein positiver Wert zurückgegeben. Bei Gleichheit liefert
+die Methode den Rückgabewert 0.
+
+<p>
+<a name="ixa100674"><a href="index_r.html#ixb100531"><font color=#000080><tt>regionMatches</tt></font></a></a>
+vergleicht zwei gleich lange String-Regionen, die in zwei unterschiedlichen
+Strings an zwei unterschiedlichen Positionen liegen können. Die
+Region im ersten String beginnt dabei an der Position <font color="#000077"><tt>toffset</tt></font>,
+die im zweiten String <font color="#000077"><tt>other</tt></font>
+an der Position <font color="#000077"><tt>ooffset</tt></font>. Verglichen
+werden <font color="#000077"><tt>len</tt></font> Zeichen. Das Ergebnis
+ist <a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a>,
+wenn beide Teilstrings identisch sind, andernfalls ist es <a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a>.
+Die Methode steht auch in einer Variante zur Verfügung, bei der
+Groß- und Kleinschreibung ignoriert werden. In diesem Fall wird
+als zusätzlicher Parameter an erster Stelle ein boolescher Wert
+<font color="#000077"><tt>ignoreCase</tt></font> übergeben.
+
+<p>
+Die Anwendung von <a href="index_r.html#ixb100531"><font color=#000080><tt>regionMatches</tt></font></a>
+soll an folgendem Beispiel erläutert werden. Der erste Vergleich
+liefert <a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a>
+(siehe <a href="k100072.html#aufrufregionmatches">Abbildung 11.2</a>),
+der zweite <a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a>:
+<a name="listingid011002"></a>
+
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
+<tr>
+<td valign=top>
+<font color="#000055">
+<pre>
+<font color="#555555">001 </font><font color="#00AA00">/* Listing1102.java */</font>
+<font color="#555555">002 </font>
+<font color="#555555">003 </font><font color="#0000AA">public</font> <font color="#0000AA">class</font> Listing1102
+<font color="#555555">004 </font>{
+<font color="#555555">005 </font> <font color="#0000AA">public</font> <font color="#0000AA">static</font> <font color="#006699">void</font> main(String[] args)
+<font color="#555555">006 </font> {
+<font color="#555555">007 </font> System.out.println(
+<font color="#555555">008 </font> <font color="#0000FF">"Grüße aus Hamburg"</font>.regionMatches(
+<font color="#555555">009 </font> 8,
+<font color="#555555">010 </font> <font color="#0000FF">"Greetings from Australia"</font>,
+<font color="#555555">011 </font> 8,
+<font color="#555555">012 </font> 2
+<font color="#555555">013 </font> )
+<font color="#555555">014 </font> );
+<font color="#555555">015 </font> System.out.println(
+<font color="#555555">016 </font> <font color="#0000FF">"Grüße aus Hamburg"</font>.regionMatches(
+<font color="#555555">017 </font> 6,
+<font color="#555555">018 </font> <font color="#0000FF">"Greetings from Australia"</font>,
+<font color="#555555">019 </font> 15,
+<font color="#555555">020 </font> 3
+<font color="#555555">021 </font> )
+<font color="#555555">022 </font> );
+<font color="#555555">023 </font> }
+<font color="#555555">024 </font>}</pre>
+</font>
+</td>
+<td valign=top align=right>
+<a href="../examples/Listing1102.java"><font color="#000055" size=-1>Listing1102.java</font></a></td>
+</tr>
+</table>
+<i>
+Listing 11.2: Die Methode regionMatches der Klasse String</i></p>
+<p>
+<a name="aufrufregionmatches"></a>
+<img src="images/StringRegion.gif">
+<p>
+
+<p><i>
+Abbildung 11.2: Der Aufruf von regionMatches</i></p>
+
+<p>
+Eine weitere Möglichkeit Zeichenketten zu vergleichen bieten
+die Regulären Ausdrücke, die in <a href="k100115.html#sectionregex">Abschnitt 17.1</a>
+beschrieben werden.
+
+<!-- Section -->
+
+<a name="sectlevel3id011002005"></a>
+<h3>11.2.5 <a name="ixa100675">Suchen in Zeichenketten</a></h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+int indexOf(String s)
+int indexOf(String s, int fromIndex)
+int lastIndexOf(String s)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+Die Methode <a name="ixa100676"><a href="index_i.html#ixb100533"><font color=#000080><tt>indexOf</tt></font></a></a>
+sucht das erste Vorkommen der Zeichenkette <font color="#000077"><tt>s</tt></font>
+innerhalb des <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Objekts.
+Wird <font color="#000077"><tt>s</tt></font> gefunden, liefert die
+Methode den Index des ersten übereinstimmenden Zeichens zurück,
+andernfalls wird -1 zurückgegeben. Die Methode gibt es auch in
+einer Version, die einen Parameter vom Typ <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>
+akzeptiert. In diesem Fall sucht sie nach dem ersten Auftreten des
+angegebenen Zeichens.
+
+<p>
+Die zweite Variante von <a href="index_i.html#ixb100533"><font color=#000080><tt>indexOf</tt></font></a>
+arbeitet wie die erste, beginnt mit der Suche aber erst ab Position
+<font color="#000077"><tt>fromIndex</tt></font>. Wird <font color="#000077"><tt>s</tt></font>
+beginnend ab dieser Position gefunden, liefert die Methode den Index
+des ersten übereinstimmenden Zeichens, andernfalls -1. Auch diese
+Methode gibt es in einer Variante, die anstelle eines <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Parameters
+ein Argument des Typs <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>
+erwartet. Ihr Verhalten ist analog zur vorherigen.
+
+<p>
+Die Methode <a name="ixa100677"><a href="index_l.html#ixb100534"><font color=#000080><tt>lastIndexOf</tt></font></a></a>
+sucht nach dem letzten Vorkommen des Teilstrings <font color="#000077"><tt>s</tt></font>
+im aktuellen <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Objekt.
+Wird <font color="#000077"><tt>s</tt></font> gefunden, liefert die
+Methode den Index des ersten übereinstimmenden Zeichens, andernfalls
+-1. Wie die beiden vorherigen Methoden gibt es auch <a href="index_l.html#ixb100534"><font color=#000080><tt>lastIndexOf</tt></font></a>
+wahlweise mit einem Parameter vom Typ <a href="index_c.html#ixb100215"><font color=#000080><tt>char</tt></font></a>
+und mit einem zweiten Parameter, der die Startposition der Suche bestimmt.
+
+
+<!-- Section -->
+<a name="sectlevel3id011002006"></a>
+<h3>11.2.6 <a name="ixa100678">Ersetzen von Zeichenketten</a></h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+String toLowerCase()
+String toUpperCase()
+
+String replace(CharSequence oldString, CharSequence newString)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+
+<p>
+Die Methode <a name="ixa100679"><a href="index_t.html#ixb100536"><font color=#000080><tt>toLowerCase</tt></font></a></a>
+liefert den String zurück, der entsteht, wenn alle Zeichen des
+Argumentstrings in Kleinbuchstaben umgewandelt werden. Besitzt der
+String keine umwandelbaren Zeichen, wird der Original-String zurückgegeben.
+<a name="ixa100680"><a href="index_t.html#ixb100537"><font color=#000080><tt>toUpperCase</tt></font></a></a>
+arbeitet ganz ähnlich, liefert aber den String, der entsteht,
+wenn alle Zeichen in Großbuchstaben umgewandelt werden. Besitzt
+der String keine umwandelbaren Zeichen, wird der Original-String zurückgegeben.
+
+<p>
+Mit Hilfe von <a name="ixa100681"><a href="index_r.html#ixb100538"><font color=#000080><tt>replace</tt></font></a></a>
+werden alle Vorkommen der Zeichenkette <font color="#000077"><tt>oldString</tt></font>
+durch <font color="#000077"><tt>newString</tt></font> ersetzt. Dafür
+wird die Zeichenkette von vorn nach hinten durchlaufen, so dass ein
+Ersetzen von <font color="#000077"><tt>aa</tt></font> durch <font color="#000077"><tt>ab</tt></font>
+auf dem Ausgangswort <font color="#000077"><tt>aaa</tt></font> zum
+Resultat <font color="#000077"><tt>aba</tt></font> führt.
+
+<p>
+Neben der Methode <font color="#000077"><tt>replace</tt></font> enthält
+das JDK noch eine zweite namens <a name="ixa100682"><a href="index_r.html#ixb100539"><font color=#000080><tt>replaceAll</tt></font></a></a>.
+Diese akzeptiert statt der Originalzeichenkette auch einen Regulären
+Ausdruck, dessen vorkommen dann mit der zweiten Zeichenkette ersetzt
+werden. Reguläre Ausdrücke und ihre Verwendung finden Sie
+in <a href="k100115.html#sectionregex">Abschnitt 17.1</a>.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Bei <font color="#000077"><tt>CharSequence</tt></font> im obrigen
+Listing handelt es sich um ein Interface die in <a href="k100058.html#interfacedefinitionen">Abschnitt 9.1</a>
+beschrieben werden. Dieses Interface wird von allen zeichenorientierten
+Klassen der Java Standardbibliothek beschrieben und am Ende dieses
+Kapitels vorgestellt.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#0099CC">
+<tr>
+<td><font color="#FFFFFF"> Tipp </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="stringzerlegen"></a>
+<h3>11.2.7 <a name="ixa100683">Ersetzen von Zeichenketten</a></h3>
+
+<p>
+Mit Hilfe der Methode <a href="index_s.html#ixb100540"><font color=#000080><tt>split</tt></font></a>
+können Zeichenketten in mehrere Teile zerlegt werden. Das folgende
+Programm verdeutlicht, dies anhand einer einfachen Zeichenkette:
+<a name="listingid011003"></a>
+
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
+<tr>
+<td valign=top>
+<font color="#000055">
+<pre>
+<font color="#555555">001 </font><font color="#00AA00">/* Listing1103.java */</font>
+<font color="#555555">002 </font>
+<font color="#555555">003 </font><font color="#0000AA">public</font> <font color="#0000AA">class</font> Listing1103
+<font color="#555555">004 </font>{
+<font color="#555555">005 </font> <font color="#0000AA">public</font> <font color="#0000AA">static</font> <font color="#006699">void</font> main(String[] args)
+<font color="#555555">006 </font> {
+<font color="#555555">007 </font> String satz = <font color="#0000FF">"Dies ist nur ein Test"</font>;
+<font color="#555555">008 </font> String[] result = satz.split(<font color="#0000FF">"\\s"</font>);
+<font color="#555555">009 </font> <font color="#0000AA">for</font> (<font color="#006699">int</font> x=0; x<result.length; x++) {
+<font color="#555555">010 </font> System.out.println(result[x]);
+<font color="#555555">011 </font> }
+<font color="#555555">012 </font> }
+<font color="#555555">013 </font>}</pre>
+</font>
+</td>
+<td valign=top align=right>
+<a href="../examples/Listing1103.java"><font color="#000055" size=-1>Listing1103.java</font></a></td>
+</tr>
+</table>
+<i>
+Listing 11.3: Zerlegen von Zeichenketten</i></p>
+
+<p>
+Die Programmausgabe ist:
+<font color="#333300">
+<pre>
+Dies
+ist
+nur
+ein
+Test
+</pre>
+</font>
+
+<p>
+Der Parameter, den die Methode <font color="#000077"><tt>split</tt></font>
+dabei erwartet ist ein Regulärer Ausdruck, welcher die zu verwendenden
+Trennzeichen beschreibt. <font color="#000077"><tt>'\s'</tt></font>
+ist hierbei eine Kurzform für alle Arten von »Leerzeichen«.
+Reguläre Ausdrücke und ihre Verwendung werden in <a href="k100115.html#sectionregex">Abschnitt 17.1</a>
+vorgestellt.
+<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 Methode <font color="#000077"><tt>split</tt></font> wurde mit
+dem JDK 5 in Java eingeführt. In den früheren Versionen
+bediente man sich hierfür der Hilfsklasse <a name="ixa100684"><a href="index_s.html#ixb100541"><font color=#000080><tt>StringTokenizer</tt></font></a></a>.
+Um die Abwärtskompatibilität von Java-Programmen zu gewährleisten
+ist diese natürlich auch weiterhin Bestandteil der aktuellen
+JDKs.</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"> JDK1.1-6.0 </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="sectlevel3id011002008"></a>
+<h3>11.2.8 <a name="ixa100685">Konvertierungsfunktionen</a></h3>
+
+<p>
+Da es oftmals nötig ist, primitive Datentypen in Zeichenketten
+umzuwandeln, bietet Java eine ganze Reihe von Methoden, die zu diesem
+Zweck entwickelt wurden. Allen Methoden ist der Name <a name="ixa100686"><a href="index_v.html#ixb100543"><font color=#000080><tt>valueOf</tt></font></a></a>
+und die Tatsache, dass sie exakt einen Parameter erwarten, gemein.
+
+<p>
+Alle <a href="index_v.html#ixb100543"><font color=#000080><tt>valueOf</tt></font></a>-Methoden
+sind als Klassenmethoden implementiert, d.h. sie können auch
+ohne ein <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Objekt
+aufgerufen werden. Dies macht Sinn, denn sie werden ja in aller Regel
+erst dazu verwendet, Strings zu erzeugen. Ein Aufruf von <a href="index_v.html#ixb100543"><font color=#000080><tt>valueOf</tt></font></a>
+wandelt ein primitives Objekt mit Hilfe der Methode <a href="index_t.html#ixb100327"><font color=#000080><tt>toString</tt></font></a>,
+die von der zugehörigen Wrapper-Klasse zur Verfügung gestellt
+wird, in eine Zeichenkette um. Die wichtigsten <a href="index_v.html#ixb100543"><font color=#000080><tt>valueOf</tt></font></a>-Methoden
+sind:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+static String valueOf(boolean b)
+static String valueOf(char c)
+static String valueOf(char[] c)
+static String valueOf(double d)
+static String valueOf(float f)
+static String valueOf(int i)
+static String valueOf(long l)
+static String valueOf(Object obj)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/lang/String.html" onClick="this.href=getApiDoc('java.lang.String')"><font color="#660066" size=-1>java.lang.String</font></a></td>
+</tr>
+</table>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Die meisten Java-Wrapperklassen für Basistypen im Paket <font color="#000077"><tt>java.lang</tt></font>
+enthalten übrigens das Pendant zu <font color="#000077"><tt>valueOf</tt></font>.
+Diese erwarten einen <font color="#000077"><tt>String</tt></font>
+und geben den jeweiligen Basistyp zurück. Mehr zum Thema Pakete
+in Java finden Sie in <a href="k100084.html#subsectionpakete">Abschnitt 13.1.5</a>.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#0099CC">
+<tr>
+<td><font color="#FFFFFF"> Tipp </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#0099CC"><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"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </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"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100071.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100073.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100078.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">© 1998, 2007 Guido Krüger & Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>
|
