skip to main content

kiesler.at

Variablen mit Hashtable verwalten
updated by rck, 2004-10-03

Beispiel 1186 der EPROG-Beispielsammlung l�sst sich sehr sch�n mit einer Hashtable l�sen. Es handelt sich hierbei um eine schlichte Variablenverwaltung f�r ganzzahlige Werte.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

getWert()

getWert ist ein Handlanger von assign. Diese Methode versucht zuerst, den �bergebenen String als Konstante zu interpretieren. Gelingt dies, wird die Konstante zur�ckgeliefert.

Anderenfalls wird in der Hashtable nachgesehen, ob der Wert vielleicht dort abgelegt ist. Wenn das auch nicht der Fall ist, gibt's eine Exception.

77         public static Short getWert(String s)
78                 throws Exception
79         {
80                 // etwaiges f�hrendes Fragezeichen entfernen
81                 // (Stichwort: Ausgabe). F�ngt an dieser Stelle
82                 // auch den gemeinen Fall ab, dass zB ?14
83                 // abgefragt wird.
84 
85                 if(s.startsWith("?"))
86                         s=s.substring(1);
87 
88                 if(s.startsWith("-"))
89                         throw new Exception("Negative Werte sind "+
90                                 "laut Spezifikation nicht vorgesehen!");
91 
92                 try {
93 
94                         return(Short.valueOf(s));
95 
96                 } catch(NumberFormatException nfe) {
97 
98 
99                         // nichtexistente Werte haben den
100                         // Wert null (wie in einer Datenbank).
101                         // Wir m�ssen uns somit um das Werfen
102                         // der Exception k�mmern!
103 
104                         Short wert=(Short)syms.get(s);
105 
106                         if(wert == null)
107                                 throw new Exception("Wert '"+
108                                         s+"' ist unbekannt!");
109                         else
110                                 return(wert);
111 
112                 }
113         }

Beschreibung getWert

85-86 Damit getWert angenehm f�r die Hauptschleife zu gebrauchen ist, �berspringen wir ein gegebenenfalls vorhandenes, f�hrendes Fragezeichen.

88-90 Negative Werte sind nicht erlaubt, entsprechend gibt es bei einem - eine Exception

92-95 Versuchen wir einfach mal, den String als Zahl zu interpretieren. Klappt das, bekommt der Aufrufer den Wert zur�ck.

96 Klappt das nicht, k�nnten wir ja immer noch eine Variable bekommen haben.

104 Sehen wir also in unserer Hashtable nach.

106-108 Bekamen wir null zur�ck, gibt's die Variable in der Hashtable nicht und wir werfen eine Exception.

110 anderenfalls liefern wir den Wert zur�ck.

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



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