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

huacnlee · 2012年07月04日 · 最后由 huacnlee 回复于 2012年07月05日 · 10205 次阅读

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

比如 5 位:

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

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

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

这个至少要追溯到 C 吧

匿名 #3 2012年07月04日

也可以 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 方法在控制台打印,用来对齐非常方便

需要 登录 后方可回复, 如果你还没有账号请 注册新账号