skip to main content

kiesler.at

Spaziergang durch einen Einheitenberechner
updated by rck, 2004-10-10

Der Ernstfall ist eingetreten. EPROG. Drei Beispiele, eines schlimmer als das andere. Zu allem �berfluss sind die mitgelieferten "Unterst�tzungsprogramme" mehr ein Klotz am Bein als sonst was.

Wie geht's weiter, wenn kein Stein und kein Seil verf�gbar ist, das einen den Weg in die Donau begleiten k�nnte?

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13

tokenize()

52���������public�static�void�tokenize(String�s)
53�����������������throws�Exception�{
54
55�����������������//�siehe:�http://java.sun.com/j2se/1.3/docs/
56�����������������//���������������api/java/util/StringTokenizer.html
57�����������������
58�����������������StringTokenizer�st=new�StringTokenizer(
59���������������������������������s,�"()+-*/",�true);
60
61�����������������int�Klammerebene=0;
62�����������������String�token;
63
64�����������������while(st.hasMoreTokens())�{
65�������������������������token=st.nextToken();
66
67
68�������������������������//�Klammern�sind�was�ganz�spezielles...
69
70�������������������������if(token.equals("("))
71���������������������������������Klammerebene++;
72�������������������������else
73�������������������������if(token.equals(")"))�{
74���������������������������������Klammerebene--;
75���������������������������������if(Klammerebene<0)
76�����������������������������������������throw(new�Exception("Zuviele�schlie�ende�Klammern!"));
77�������������������������}
78
79�������������������������ausdruck.add(token);
80�������������������������
81�����������������}
82
83
84�����������������if(Klammerebene!=0)
85�������������������������throw(new�Exception("Zuviele��ffnende�Klammern!"));
86
87�����������������return;
88���������}

Beschreibung von tokenize()

Tokenize nimmt den �bergebenen String s und f�llt damit unsere ArrayList ausdruck. Angenehmerweise werden da auch gleich die Klammern �berpr�ft!

58-59: Der JAVA String-Tokenizer erledigt f�r uns die Hauptarbeit. Wir sagen ihm, dass unsere Trennzeichen die Zeichen ()+-*/ sind. Das anschlie�ende "true" hei�t in diesem Fall, dass wir auch Vorkommnisse von unseren Trennzeichen mitbekommen m�chten. Ohne dem "true" w�rden sie stillschweigend unter den Tisch gekehrt und wir bek�men nur unsere Nummern und Ma�einheiten. Ohne Operatoren.

64-65: While(hasMoreTokens) token=nextToken.

Die klassische Tokenizer-Schleife. Wir holen uns Happen f�r Happen und schreiben den in unseren String token.

70-77: Die Klammerpr�fung. �ffnende Klammern erh�hen unseren Klammerz�hler, bei schlie�enden der Check, ob nicht vielleicht schon zu viel geschlossen wurde.

84: Hier der Check, ob zuviele Klammern ge�ffnet wurden.

79: Wie wir schon aus dem ArrayList Tutorial wissen, f�gt add ein Element an das Ende der ArrayList. Wir haben also damit unsere Tokens sch�n der Reihe nach in die ArrayList reingeschrieben.

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13



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