Ruby 数字位数不足, 前面以 0 补充的快捷方法

huacnlee · July 04, 2012 · Last by huacnlee replied at July 05, 2012 · 10211 hits

最近有个需求,把数字显示成固定的位数,位数不足的在前面以零补充

比如 5 位:

  • 3 -> 00003
  • 292 -> 00292
  • 12422 -> 12422

发现 Ruby 很容易就可以实现了

irb> "%05d" % 12422
"12422"
irb> "%05d" % 22
"00022"

这个至少要追溯到 C 吧

Unknow user #3 July 04, 2012

也可以 22.to_s.rjust(5, '0')

('0'*5+'3')[-5, 5]

华顺的方法基本上是标准作法。如果是直接处理字符串,也可以用 String#rjust:

"12422".rjust(5, '0')    => "12422"
"22".rjust(5, '0')       => "00022"

这是 printf 啊

#5 楼 @ashchan rjust 方法在控制台打印,用来对齐非常方便

You need to Sign in before reply, if you don't have an account, please Sign up first.