unregelmässigen String elegant umformen
Verfasst: 25.03.2011 15:19
Hallo liebe Code-Knacker,
ich hätte hier ein kleines Problem anzubieten, falls jemand interessiert ist
Ich versuche einen "Uptime-String" zu parsen/umzuformen, der folgendes Format hat:
Hierbei stehen die Grossbuchstaben für einen variablen Zahlenwert für jeweils die Anzahl Tage(D), Stunden(H), Minuten(M) und Sekunden(S)
Mein gewünschtes Ausgabeformat ist folgendes:
Das verzwickte bei der Sache sind immer die "Überläufe", wenn nämlich die Tage, Stunden oder Minuten jeweils gerade auf 0 stehen ... dann sieht der String nämlich leider so aus:
Meine bisherigen Versuche diese Sonderfälle abzufangen würde ich mal als EPIC FAIL
bezeichnen und deshalb meine Frage ... gibt's da nicht auch was mit REGEX(mit dem ich von jeher auf Kriegsfuss stehe) oder hat jemand sonst eine einfache Idee?
Ich poste hier ganz bewusst nicht meinen Code, weil ich befürchte, dass ich zunächst einen neuen Impuls für den Lösungsansatz brauche ...
So long und danke schon mal im Voraus für euer Feedback,
Manne.
NACHTRAG: Evtl. hat ja jemand eine "schlanke" Idee, wie ich den String zunächst mit den fehlenden Werten auffüllen könnte.
Also um z.B. aus 2d 7m 17s folgendes zu machen: 2d 0h 7m 17s ODER
aus 1d 8h 46s folgendes zu machen: 1d 8h 0m 46s
Das Ergebniss liesse sich dann in ein array "explodieren", wo ich dann "geordnete" Verhältnisse habe.
(DIe fehlenden Tage am Anfang, sowie die fehlden Sekunden am Ende sind dabei eher nicht mein Problem)
ich hätte hier ein kleines Problem anzubieten, falls jemand interessiert ist

Ich versuche einen "Uptime-String" zu parsen/umzuformen, der folgendes Format hat:
Code: Alles auswählen
Dd HHh MMm SSs
Mein gewünschtes Ausgabeformat ist folgendes:
Code: Alles auswählen
D Tag(e) HHh:MMm
- 0 Tage =
Code: Alles auswählen
HHh MMm SSs
- 0 Stunden =
Code: Alles auswählen
Dd MMm SSs
- 0 MInuten =
Code: Alles auswählen
Dd HHh SSs
Meine bisherigen Versuche diese Sonderfälle abzufangen würde ich mal als EPIC FAIL

Ich poste hier ganz bewusst nicht meinen Code, weil ich befürchte, dass ich zunächst einen neuen Impuls für den Lösungsansatz brauche ...
So long und danke schon mal im Voraus für euer Feedback,
Manne.
NACHTRAG: Evtl. hat ja jemand eine "schlanke" Idee, wie ich den String zunächst mit den fehlenden Werten auffüllen könnte.
Also um z.B. aus 2d 7m 17s folgendes zu machen: 2d 0h 7m 17s ODER
aus 1d 8h 46s folgendes zu machen: 1d 8h 0m 46s
Das Ergebniss liesse sich dann in ein array "explodieren", wo ich dann "geordnete" Verhältnisse habe.
(DIe fehlenden Tage am Anfang, sowie die fehlden Sekunden am Ende sind dabei eher nicht mein Problem)