正如你在红宝石中所知道的,你可以做到
"%03d" % 5
#=> "005"
"%03d" % 55
#=> "055"
"%03d" % 555
#=> "555"
所以基本上数字将有3个字符串位置的“0”前缀
只是想知道是否有可能以类似的好方法做数字字符串后缀?(请不要 if 语句)
something 5
#=> 500
something 55
#=> 550
something 555
# => 555
正如你在红宝石中所知道的,你可以做到
"%03d" % 5
#=> "005"
"%03d" % 55
#=> "055"
"%03d" % 555
#=> "555"
所以基本上数字将有3个字符串位置的“0”前缀
只是想知道是否有可能以类似的好方法做数字字符串后缀?(请不要 if 语句)
something 5
#=> 500
something 55
#=> 550
something 555
# => 555
ljust方法怎么样?
"5".ljust(3, "0")
如果你想对整数这样做,还有一些to_s
和方法调用to_i
您可以通过更多数学运算来避免字符串转换,例如log_10
查找整数中的位数,然后i *= 10**x
在哪里x
需要多少个 0
像这样:
def something(int, power=3)
int * 10**([power - Math.log10(int).to_i - 1, 0].max)
end
怎么样
def prettify(n)
("%03d" % (n.to_s.reverse.to_i)).to_s.reverse
end
哪个
当然,从现在起几个月后,维护这段代码可能会成为一项挑战:-)