16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

6.3 Die Klasse Str<strong>in</strong>gTokenizer<br />

Die Str<strong>in</strong>gTokenizer-Klasse unterstützt das Aufteilen e<strong>in</strong>es Str<strong>in</strong>gs <strong>in</strong> Teilworte bzw.<br />

Zeichen, sog. Tokens. Tokens wer<strong>de</strong>n mit Hilfe von Trennzeichen erkannt, die e<strong>in</strong><br />

Token vom an<strong>de</strong>ren trennen. E<strong>in</strong> Token ist e<strong>in</strong>e Zeichenkette, <strong>in</strong> <strong>de</strong>r ke<strong>in</strong>e<br />

Trennzeichen vorkommen. In <strong>de</strong>r Regel wer<strong>de</strong>n Whitespaces 321 als Trennzeichen<br />

verwen<strong>de</strong>t. Der Str<strong>in</strong>gTokenizer ist nicht an bestimmte Trennzeichen gebun<strong>de</strong>n, sie<br />

können vielmehr frei gewählt wer<strong>de</strong>n. Nur <strong>in</strong> <strong>de</strong>r Vore<strong>in</strong>stellung s<strong>in</strong>d Tabulator,<br />

Leerzeichen und Zeilentrenner die Delimiter.<br />

Konstruktor: public Str<strong>in</strong>gTokenizer(Str<strong>in</strong>g str)<br />

E<strong>in</strong> Str<strong>in</strong>gTokenizer mit Whitespaces als Trennzeichen wird erzeugt. Der zu<br />

untersuchen<strong>de</strong> Str<strong>in</strong>g ist str. Sollen an<strong>de</strong>re Zeichen als Trennzeichen angegeben<br />

wer<strong>de</strong>n, so müssen diese ebenfalls an <strong>de</strong>n Konstruktor übergeben wer<strong>de</strong>n:<br />

public Str<strong>in</strong>gTokenizer(Str<strong>in</strong>g str, Str<strong>in</strong>g <strong>de</strong>limiters)<br />

Metho<strong>de</strong>n:<br />

public Str<strong>in</strong>g nextToken() throws NoSuchElementException<br />

gibt das jeweils nächste Token an<br />

public boolean hasMoreTokens()<br />

gibt Auskunft darüber, ob es noch weitere Tokens gibt.<br />

public <strong>in</strong>t countTokens()<br />

gibt Auskunft darüber, wie viele Tokens <strong>in</strong> e<strong>in</strong>em Str<strong>in</strong>g vorhan<strong>de</strong>n s<strong>in</strong>d.<br />

public Str<strong>in</strong>g nextToken(Str<strong>in</strong>g neueDelimiter)<br />

bewirkt nach e<strong>in</strong>em Aufruf die Verän<strong>de</strong>rung <strong>de</strong>r Trennzeichen.<br />

Das Enumerations-Interface ist <strong>in</strong> die Str<strong>in</strong>gTokenizer-Klasse implementiert:<br />

public boolean hasMoreElements()<br />

{<br />

return hasMoreTokens();<br />

}<br />

public Object nextElement()<br />

{<br />

return nextToken();<br />

}<br />

Bsp.: Ausgabe <strong>de</strong>r Worte e<strong>in</strong>es Satzes 322<br />

import java.util.Str<strong>in</strong>gTokenizer;<br />

import java.io.*;<br />

public class Str<strong>in</strong>gTokenizerTest<br />

{<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g[] args)<br />

{<br />

System.out.pr<strong>in</strong>tln("\nStr<strong>in</strong>gTokenizerTest\n");<br />

System.out.pr<strong>in</strong>tln("Gib e<strong>in</strong>ige Saetze fuer <strong>de</strong>n Test an.");<br />

System.out.pr<strong>in</strong>tln("Term<strong>in</strong>iere ueber e<strong>in</strong>e leere Zeile");<br />

boolean moreInput;<br />

do {<br />

System.out.pr<strong>in</strong>t("> ");<br />

Str<strong>in</strong>g e<strong>in</strong>gabeZeile = null;<br />

BufferedRea<strong>de</strong>r e<strong>in</strong>gabe = null;<br />

e<strong>in</strong>gabe = new BufferedRea<strong>de</strong>r(new InputStreamRea<strong>de</strong>r(System.<strong>in</strong>));<br />

try {<br />

321 Zu <strong>de</strong>n Whitespaces gehören Leerzeichen, Tabulator, Zeilenvorschub und Zeilenumbruch. Wird beim<br />

Erzeugen e<strong>in</strong>es Tokenizer ke<strong>in</strong>e Trennzeichen-Zeichenkette angegeben, so wer<strong>de</strong>n Whitespaces als<br />

Trennzeichen angenommen.<br />

322 vgl. pr66100<br />

455

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!