oktale Interpretation der führenden Null umgehen

Status
Nicht offen für weitere Antworten.
M

martin.g

Gast
Hallo zusammen,
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?

Viele Grüße
Martin
 
S

SlaterB

Gast
sinnvoll wäre die Information, was du unter 'Diese Stunden sind an java.util.Calendar zu übergeben.' verstehst
bzw. was sind Stunden in dem Fall, ein String, int, ..?

> Jetzt habe ich das Problem, dass diese Angabe auf Grund der führenden Null als Oktalzahl interpretiert wird.

WER interpretiert das so?

Integer.parseInt und SimpleDataFormat haben damit jedenfalls keine Probleme
 

Verjigorm

Top Contributor
falls deine Stunden als String vorhanden sind:

Code:
String stunden = "09";
if(stunden.startsWith("0"))
   stunden = stunden.replaceFirst("0", "");
System.out.println(stunden);
aus 09 wird 9, aus 00 wird 0
 
M

martin.g

Gast
Vielen Dank für eure Antworten, mit SimpleDateFormat geht das wirklich flott, wenn man den Bogen mal raus hat. Vor allem, weil man sich dann gleich das Calendar Objekt passend erzeugen lassen kann.

Außerdem war mir das parseInt auch eine große Hilfe, ich hatte mir über die Typumwandlung bisher etwas zu wenig Gedanken gemacht. Perl sei Dank :)

@Verjigorm: Das wäre mir etwas zu umständlich, alle Nullen händisch zu entfernen.

Mir fällt zwar grad ein, dass es mit dem regulären Ausdruck auch gegangen wäre, weil 00 bzw. 000 ja immer Null ist, egal ob Oktal oder sonstwie, aber so ist es schon deutlich schöner.

Viele Grüße
Martin
 

Verjigorm

Top Contributor
jojo war mir klar, dass das umständlich ist, wollte ja nur aufzeigen wie es auch gehen könnte
paar neue Funktionen kennezulernen is nie verkehrt :)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben