Marc Reichelt: oktale Interpretation der führenden Null umgehen

Beitrag lesen

Hallo Martin,

ich beschäftige mich momentan gezwungenermaßen (IT-Anwendung an der FH) mit Java und habe noch so die eine oder andere Schwierigkeit. Per regulärem Ausdruck ziehe ich aus einer Datei eine Uhrzeit, die beispielsweise so aussieht:
092201.000  (hhmmss.ms)
Mein erster Match (group(1)) ist 09 - die Stunden
Diese Stunden sind an java.util.Calendar zu übergeben. Jetzt habe ich das Problem, dass diese Angabe auf Grund der führenden Null als Oktalzahl interpretiert wird. Kann ich das irgendwie verhindern?
Zwar könnte ich im Regex sowas verwenden: [0]?(\d{1,2}), aber zum einen ist der Ausdruck auch so schon lange genug (es geht nicht nur um die Zeit), zum anderen habe ich so noch nicht das Problem gelöst, dass natürlich auch 00 vorkommen kann.

Hat jemand eine Idee, wie ich mir bestmöglich behelfen könnte?

So wie ich die Sache sehe sieht das Format immer so aus, dass die Stunden, Minuten und Sekunden durch jeweils zwei Zeichen präsentiert werden, und die Millisekunden durch drei.
Ich würde also an deiner Stelle zunächst den String in seine String-Bestandteile (hh, mm, ss und ms) zerlegen.
Dann schaust du dir noch mal genau die Methode Integer.parseInt() an, die für das Einlesen von normalen Zahlen (10er-System) zuständig ist.

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)