20.07.2013 Aufrufe

Programmieren in Java - LSW

Programmieren in Java - LSW

Programmieren in Java - LSW

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

FACHHOCHSCHULE MUENCHEN FAKULTÄT FÜR ELEKTROTECHNIK UND INFORMATIONSTECHNIK<br />

FG TECHNISCHE INFORMATIK V – JV – 277 – 00 – TH – 04<br />

------------------------------------------------------------------------------------<br />

Die Klasse Str<strong>in</strong>gBuffer <strong>in</strong> <strong>Java</strong> (3)<br />

• Erzeugung e<strong>in</strong>es Str<strong>in</strong>g-Objekts aus e<strong>in</strong>em Str<strong>in</strong>gBuffer-Objekt<br />

◇ Mittels der Str<strong>in</strong>gBuffer-Memberfunktion :<br />

public Str<strong>in</strong>g toStr<strong>in</strong>g()<br />

▻ Sie erzeugt e<strong>in</strong> neues Str<strong>in</strong>g-Objekt, dass mit der aktuell im aktuellen Str<strong>in</strong>gBuffer-Objekt enthaltenen<br />

Zeichenfolge <strong>in</strong>itialisiert ist und gibt e<strong>in</strong>e Referenz auf dieses als Funktionswert zurück.<br />

▻ Dieses Str<strong>in</strong>g-Objekt ist die Str<strong>in</strong>g-Repräsentation des Str<strong>in</strong>gBuffer-Objekts<br />

▻ Beispiel : Str<strong>in</strong>gBuffer strb = new Str<strong>in</strong>gBuffer();<br />

// ... Manipulation von strb<br />

Str<strong>in</strong>g str1 = strb.toStr<strong>in</strong>g();<br />

◇ Mittels des Str<strong>in</strong>g-Konstruktors :<br />

public Str<strong>in</strong>g(Str<strong>in</strong>gBuffer buf)<br />

▻ Beispiel : // ...<br />

Str<strong>in</strong>g str2 = new Str<strong>in</strong>g(strb);<br />

◇ Mittels der statischen Str<strong>in</strong>g-Memberfunktion :<br />

public static Str<strong>in</strong>g valueOf(Object obj)<br />

▻ Dieser Funktion ist das Str<strong>in</strong>gBuffer-Objekt als Parameter zu übergeben.<br />

▻ Sie erzeugt e<strong>in</strong> neues Str<strong>in</strong>g-Objekt, dass mit der aktuell im übergebenen Str<strong>in</strong>gBuffer-Objekt enthaltenen<br />

Zeichenfolge <strong>in</strong>itialisiert ist und gibt e<strong>in</strong>e Referenz auf dieses als Funktionswert zurück.<br />

▻ Beispiel : // ...<br />

Str<strong>in</strong>g str3 = Str<strong>in</strong>g.valueOf(strb);<br />

• Verwendung der Klasse Str<strong>in</strong>gBuffer durch den Compiler<br />

◇ Der Compiler realisiert e<strong>in</strong>e mehrfache Str<strong>in</strong>g-Konkatenation unter Verwendung e<strong>in</strong>es temporären Str<strong>in</strong>gBuffer-<br />

Objekts.<br />

Beispiel : Str<strong>in</strong>g s1 = "Morgenstund";<br />

Str<strong>in</strong>g s2;<br />

s2 = '';<br />

Der Ausdruck s2 = '' wird vom Compiler umgesetzt <strong>in</strong> :<br />

s2 = new Str<strong>in</strong>gBuffer().append('').toStr<strong>in</strong>g()<br />

Hier wird nur e<strong>in</strong> temporär benötigtes Str<strong>in</strong>gBuffer-Objekt erzeugt. Da se<strong>in</strong> Inhalt veränderlich ist, können die<br />

zu konkatenierenden Str<strong>in</strong>gs bzw Str<strong>in</strong>grepräsentationen angehängt werden. E<strong>in</strong>e explizite Erzeugung von Str<strong>in</strong>g-<br />

Objekten für die Nicht-Str<strong>in</strong>g-Operanden ist nicht erforderlich.<br />

◇ Ohne das temporäre Str<strong>in</strong>gBuffer-Objekt müsste für jede Str<strong>in</strong>grepräsentation e<strong>in</strong>es Nicht-Str<strong>in</strong>g-Operanden<br />

e<strong>in</strong> neues Str<strong>in</strong>g-Objekt erzeugt werden. Ausserdem würde nach jedem Zwischenschritt (jeder ausgeführten<br />

Konkatenation) zusätzlich e<strong>in</strong> weiteres Str<strong>in</strong>g-Objekt erzeugt werden.<br />

Diese zusätzlichen Str<strong>in</strong>g-Objekte werden nach Abschluß der Gesamtoperation nicht mehr benötigt.<br />

unnötige Speicherallokationen (und danach wieder durchgeführte Speicherfreigaben).<br />

Im obigen Beispiel würden erzeugt werden :<br />

"

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!