stefan
March 12, 2009, 6:32pm
1
Hallo,
ich möchte Strings in folgender Reihenfolge erzeugen:
0001
0002
…
9999
Das Problem ist ja eigentlich nur zwischen 0001 und 1000, da bei der
Erzeugung über Integer die führenden Nullen fehlen, welche ich aber an
der Stelle haben möchte.
Mir fällt spontan nur sowas unschönes ein, wie die Prüfung auf die
Länge des resultierenden Strings und dann entsprechend viele Nullen
voranzustellen.
Gibts es vielleicht noch eine schönere Lösung, die ich noch nicht kenne?
Danke und
GrüßeStefan
basiszwo
Stefan B.
email: [email protected]
www: www.basiszwo.com
stefan
March 12, 2009, 6:40pm
2
On 12.03.2009, at 18:31, basiszwo - Stefan B. wrote:
Hallo,
ich möchte Strings in folgender Reihenfolge erzeugen:
0001
0002
…
9999
start = “0001”
while start.to_i < 9999
start = start.succ
end
Cheers, Mathias
stefan
March 12, 2009, 6:51pm
3
Am 12.03.2009 um 18:39 schrieb Mathias Meyer:
start = “0001”
while start.to_i < 9999
start = start.succ
end
ahh, sehr cool. Genau das habe ich gesucht. succ habe ich völlig
überlesen
basiszwo
Stefan B.
email: [email protected]
www: www.basiszwo.com
stefan
March 12, 2009, 6:52pm
4
oder auch
(1…10_000).each { |i| puts i.to_s.rjust(4,‘0’) }
stefan
March 12, 2009, 7:22pm
5
Oder auch
1.upto(9999) { |i| “%04d” % i }
(wie bei Mathias, % ist ein alias für printf)
Phillip
Am 12.03.2009 um 18:52 schrieb Niko D. [email protected] :
stefan
March 12, 2009, 7:32pm
6
Phillip O. schrieb:
Oder auch
1.upto(9999) { |i| “%04d” % i }
(wie bei Mathias, % ist ein alias für printf)
sprintf
Gruß,
Roland
–
Moriz GmbH
Hedwig-Dransfeld-Allee 14
80637 München
Tel: 089/78795079 (AB)
Vertretungsberechtigter
Geschäftsführer:
Roland M.
Registergericht: Amtsgericht München
Registernummer: HRB 174 294
USt-ID: DE260422784
stefan
March 12, 2009, 6:47pm
7
2009/3/12 basiszwo - Stefan B. [email protected] :
Hallo,
ich möchte Strings in folgender Reihenfolge erzeugen:
0001
0002
…
9999
10_000.times do |i|
puts sprintf(“%04d”,i)
end
–
Thomas P.
[email protected]