我正在研究如何在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。 我没想到了,所以我会感激一点帮助!
答案 0 :(得分:9)
我不是Ruby开发人员,但从根本上说,我认为您需要将数字 i
和文本表示的概念分开来领先的0.所以某事喜欢:
for i in (1..10)
puts "%02d" % i
end
(从其他答案中可以看出,有很多方法可以对循环本身进行编码。)
此处i
始终是一个数字,但表达式"%02d" % i
将i
格式化为两位数字,仅用于显示目的。
答案 1 :(得分:6)
在您准备好实际输出之前,请勿转换为输出字符串。您通常不会增加字符串值。
0.upto(10) { |i| puts "%02d" % i }
答案 2 :(得分:2)
10.times do |x|
puts "%02d" % x
end