用零填充数字

And*_*eko 21 ruby string

如何将数字表示user.id为字符串:

  • 00如果user.id在0到9范围内,则填充到左侧

    # => "00#{user.id}"

  • 0如果user.id在10到99范围内,则填充

    # => "0#{user.id}"

  • 没有任何补充

    # => "#{user.id}"

例如,user.id = 1它会产生"001",user.id = 11产生"011",产生,产生,user.id = 111产生"111".

And*_*rth 40

puts 1.to_s.rjust(3, "0")
#=> 001
puts 10.to_s.rjust(3, "0")
#=> 010
puts 100.to_s.rjust(3, "0")
#=> 100
Run Code Online (Sandbox Code Playgroud)

上面的代码会将你的user.id转换为字符串,然后String.rjust()方法会考虑它的长度和前缀适当的零数.


saw*_*awa 21

你最好使用字符串格式.

"%03d" % 1    #=> "001"
"%03d" % 10   #=> "010"
"%03d" % 100  #=> "100"
"%03d" % user.id # => what you want
Run Code Online (Sandbox Code Playgroud)

  • 在数组 `%W[#{'%03d' % 1} #{'%03d' % 100}] => ["001", "100"]` (2认同)
  • 为此,我总是使用 `String#%`。 (2认同)

Ale*_*kin 5

String#rjust:

\n\n
user.id\n#\xe2\x87\x92 5\nuser.id.to_s.rjust(3, \'0\')\n#\xe2\x87\x92 "005"\n
Run Code Online (Sandbox Code Playgroud)\n