红宝石领先零和增量

时间:2011-07-06 21:40:29

标签: ruby loops

我正在研究如何在ruby中获得领先的零,我找到了解决方案:使用%02d“ 现在,我想做一个循环,保持零! 当我做这样的事情时

i = "%02d" % "1".to_i
until (i == 10)
  puts i
  i += 1
end

我有一个错误“无法将FixNum转换为字符串”。 所以我决定这样做

i = "%02d" % "1".to_i
"01"
until (i == 10)
  puts i
  i = i.to_i
  i += 1
end

所以,这次循环工作,但只有第一个数字有前导0。 我没想到了,所以我会感激一点帮助!

3 个答案:

答案 0 :(得分:9)

我不是Ruby开发人员,但从根本上说,我认为您需要将数字 i文本表示的概念分开来领先的0.所以某事喜欢:

for i in (1..10)
  puts "%02d" % i
end

(从其他答案中可以看出,有很多方法可以对循环本身进行编码。)

此处i始终是一个数字,但表达式"%02d" % ii格式化为两位数字,仅用于显示目的。

答案 1 :(得分:6)

在您准备好实际输出之前,请勿转换为输出字符串。您通常不会增加字符串值。

0.upto(10) { |i| puts "%02d" % i }

答案 2 :(得分:2)

10.times do |x|
  puts "%02d" % x
end