habe folgendes (für euch sicher simples) Problem:
ich habe eine 6stellige Zahl (z.B. 131500) Die ich in dieses Format bringen
muss:
13:15:00
Ich weiss, rtfm, aber ich finde es einfach nicht bzw werde aus der Erklärung
nicht ganz schlau.
Ich weiss dass ich printf() oder sprintf() dafür brauche. Wäre nett wenn mir
jemand helfen würde!
mfg,
Kai
"Kai Probst" <k.pr...@sap.com> schrieb:
> ich habe eine 6stellige Zahl (z.B. 131500) Die ich in dieses Format
> bringen muss: 13:15:00
my $zahl = "131500";
$zahl =~ s/(\d{2})(\d{2})(\d{2})/$1:$2:$3/;
HTH,
Dennis
--
Voll replyfaehige eMailadresse. Wird aber aus Spamvermeidungsgruenden
in unregelmaessigen Abstaenden verworfen. Private Adresse oder PGP-Key
auf Anfrage.
{ print join ":" => q(13:15:00) =~ m/(\d{2})/g }
>Ich weiss dass ich printf() oder sprintf() dafür brauche.
{ printf "%02d:%02d:%02d" => q(13:15:00) =~ m/(\d{2})/g } # oder
{ printf "%s:%s:%s" => q(13:15:00) =~ m/(\d{2})/g }
Mir gefällt das erste allerdings besser.
--
print just another perl hacker q;s/^\w+_}/ #+--- regards, Björn Höhrmann
;;sub _{reverse split q=:+==>[caller${\1}] #| mailto:bjo...@hoehrmann.de
->[3]};;sub another::just{shift&&join q> > #| http://www.bjoernsworld.de
=>_,@_};package hacker;sub perl{_}$0=~m(_) #+ http://bjoern.hoehrmann.de
-Kai
> { print join ":" => q(13:15:00) =~ m/(\d{2})/g }
> >Ich weiss dass ich printf() oder sprintf() dafür brauche.
> { printf "%02d:%02d:%02d" => q(13:15:00) =~ m/(\d{2})/g } # oder
> { printf "%s:%s:%s" => q(13:15:00) =~ m/(\d{2})/g }
> Mir gefällt das erste allerdings besser.
Mir gefaellt die Loesung ohne regex besser:
$z = q(131500);
$string = substr($z,0,2).':'.substr($z,2,2).':'.substr($z,4,2);
cu,
Martin
--
So long, and thanks | Martin Vorlaender | VMS & WNT programmer
for all the books... | work: m...@pdv-systeme.de
In Memoriam Douglas Adams | http://www.pdv-systeme.de/users/martinv/
1952-2001 | home: mar...@radiogaga.harz.de
> $z = q(131500);
> $string = substr($z,0,2).':'.substr($z,2,2).':'.substr($z,4,2);
das kann ich (fast) genauso hässlich ;)
print join ':', (split /(..)(\d{2})/, $z)[1..3];
--
# Thoren Johne - 8#X - tho...@southern-division.com
# Southern Division Classic Bikes - www.southern-division.com
*human=*you=*me=*stupid=*DATA=>#print"Just Another Perl Hacker\n 8#X"
*stupid&&*human&&*me&&*you&&2&&seek*me,-116,1;read*you,$_,42;eval;__END__
Bäh, da würde ich ja sogar noch
print join':' => (split/(..)/, '131500')[1,3,5]
vorziehen. Aber wenn es substr() sein soll, dann doch lieber
my$z=131500;substr$z=>$_=>0=>':'for 2,5;print$z;
Wollen wir jetzt anfangen zu benchmarken? ;-)
[substr vs. regexp]
> Wollen wir jetzt anfangen zu benchmarken? ;-)
<quote src="Effective Perl Programming" authors="Hall & Schwartz">
Item 20: Avoid using regular expressions for simple string operations
- Extract and modify substrings with substr
The substr operator is much faster than a regular expression
</quote>
Wie wäre es mit:
$string = q(131500); substr($string,4,0)=":"; substr($string,2,0)=":";
Jörg
--
"I'm working on it." <http://www.psyche.kn-bremen.de/>
"Du hast gemacht was wir von Dir wollten." Kündigungsbegründung
Was ja so viel anders ist, als mein wesentlich lesbareres
substr$z=>$_=>0=>':'for 2,5;
Fragezeichen.