skip to main content

kiesler.at

JAVAs StringTokenizer
updated by rck, 2006-12-31

Oft genug hat man einen String, in dem nach gewissen Zeichen getrennte Dinge drinnen stehen. Sei es ein Datum, durch . getrennt. Oder auch ein zu berechnender Term mit Operationen der Art +, -, *, etc. Der JAVA StringTokenizer zerlegt solche Zeichenketten m�helos und spart viel Arbeit.

1 | 2 | 3 | 4 | 5 | 6 | 7

Trennzeichen mit spezieller Bedeutung (zB Operanden)

Bis jetzt haben wir nur einen der drei Konstuktoren des StringTokenizers beachtet. Der erste ist relativ uninteressant, da trivial. Aus der Dokumentation: The tokenizer uses the default delimiter set, which is " \t\n\r\f"

Wesentlich gewinnbringender ist der dritte Fall; hier bekommen wir n�mlich auch die Trennzeichen als Token zur�ck.

Erkl�rung: Einfacher Berechner

26-27 Hier verwenden wir den dritten Constructor, der auch die Operanden zur�ckgibt.

Beispiel: Einfacher Berechner

Die Trennzeichen k�nnten zB Addition, Subtraktion, etc. sein. Ich habe hierf�r ein ganz schlichtes Berechnungsprogramm zusammengestellt, welches nur Addieren und Subtrahieren kann. Damit spar ich mir die Priorit�ten a la Multiplikation bindet st�rker als Addition.

Mit etwas nachdenken sollten aber auch diese kein Problem sein.

26�����������������StringTokenizer�st=new
27�������������������������StringTokenizer(s,�"+-",�true);
28�
33�����������������while(st.hasMoreTokens())�{
34�
35�������������������������if(op)�{
36���������������������������������zahl=Integer.parseInt(
37�����������������������������������������st.nextToken());
38�
39���������������������������������if(lastop.equals(""))
40�����������������������������������������result=zahl;
41���������������������������������else
42���������������������������������if(lastop.equals("+"))
43�����������������������������������������result+=zahl;
44���������������������������������else
45���������������������������������if(lastop.equals("-"))
46�����������������������������������������result*=zahl;
47���������������������������������else
48���������������������������������throw�new�Exception
49�����������������������������������������("Unbekannte�Operation�'"+
50������������������������������������������lastop+"'");
51�
52�������������������������}�else
53�
54���������������������������������lastop=st.nextToken();
55�
56�������������������������op=!op;
57�����������������}
58�

Erkl�rung: Einfacher Berechner

26-27 Hier setzen wir wie besprochen den dritten Constructor ein. Dadurch erhalten wir auch Tokens der Art "-" und "+".

35 und 56 Ein Trick: Ich lasse nur Terme zu, bei denen sich Operand und Wert abwechseln. Das Pr�fe ich mit einem Boolean-Wert namens op. Im Anhang das komplette Listing.

39-50 hier findet die eigentliche Berechnung statt. Je nach zuvor eingelesener Operation addieren oder subtrahieren wir.

1 | 2 | 3 | 4 | 5 | 6 | 7



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004

What's Related

Documents

�bersetzerbau

Link Manager

�bersetzerbau
EPROG
JAVA

Article Manager

EPROG
�bersetzerbau
JAVA

FAQ

�bersetzerbau

RSS News Feeds

JAVA

Latest Updates

AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki

Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread

Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread

Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread


Zu den KO2100 Foren