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

Fehlerbehandlung

Die Fehlerbehandlung kennen wir schon vom Hamming-Distanz Programm. Auch hier haben wir wieder zwei verschiedene Kategorien.


Einerseits der Ja/Nein Check (isLetter, prüft ob ein Zeichen ein Buchstabe ist):

isLetter

39         public static boolean isLetter(char c) {
40                 return( ( (c >= 'a') && (c <= 'z') ) ||
41                         ( (c >= 'A') && (c <= 'Z') ));
42         }

Beschreibung isLetter

40 liegt das übergebene Zeichen zwischen 'a' und 'z' ...
41 ...oder 'A' und 'Z'?

Das war's. Kryptisch? Nicht wirklich, siehe Aussagenlogik. Das Prinzip entspricht einem if-ausdruck.

checkName

Andererseits der check, der ruhig bleibt, wenn alles passt. Und nur schreit (=eine Exception wirft), wenn ein Kriterium nicht gegeben ist.

checkName() ist in unserem Fall die Erweiterung von isLetter() und prüft, ob ein übergebener String ein gültiger Name ist (=nur aus Buchstaben besteht).


59         public static void checkName(String s)
60                 throws Exception
61         {
62                 for(int i=0; i<s.length(); i++)
63                         if(!isLetter(s.charAt(i)))
64                                 throw new Exception(
65                                         "Variable '"+s+"' besteht nicht "+
66                                         "ausschließlich aus Buchstaben!");
67         }

checkName

62 wir schauen uns alle Buchstaben des übergebenen Wortes an
63 ist das aktuelle Zeichen kein Buchstabe...
64-66 gibt's eine Exception!

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