在RoR中是否有任何内置方法可以为整数填充零?

DNB*_*ims 5 ruby ruby-on-rails

如果我想要"00001"而不是"1",除了编写我自己的填充零方法之外,是否有任何内置方法可以帮助我填写整数零?

Way*_*rad 8

puts "%05d" % 1    # 00001
Run Code Online (Sandbox Code Playgroud)

请参阅:String ::%,Kernel :: sprintf

这是正在发生的事情.该"%05d"给的左边%是一个C风格的格式说明.%右侧的变量是要格式化的东西.格式说明符可以像这样解码:

  • % - 格式说明符的开头
  • 0 - 带前导零的打击垫
  • 5 - 长5个字符
  • d - 格式化的东西是整数

如果你要格式化多个东西,你可以将它们放在一个数组中:

"%d - %s" % [1, "One"]    # => 1 - one
Run Code Online (Sandbox Code Playgroud)

  • 格式化基于C的printf.它被许多语言使用,因此值得学习.http://en.wikipedia.org/wiki/Printf (2认同)