使用整数

时间:2018-04-26 18:18:36

标签: ruby

我喜欢这个剧本

 (1..134).each do |x|
   puts "0#{x}" # ????
 end

输出:

001
002
...
011
...
134

如果不使用原生格式做一堆if语句,这可能吗?它不需要处理超过3位数。

2 个答案:

答案 0 :(得分:4)

实现所需零填充的一种方法是使用#rjust

(1..134).each do |x|
  puts x.to_s.rjust(3, '0')
end

希望这有帮助!

答案 1 :(得分:3)

不确定。可以使用以下格式化程序完成:

'%03d' % 1   # 001
'%03d' % 10  # 010
'%03d' % 100 # 100

循环看起来像这样:

(1..134).each { |x| puts '%03d' % x }

还有Kernel#format方法,它正是这样做的,但不言自明:

(1..134).each { |x| puts format('%03d', x) }