You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ruby原生格式化将整数转为3位字符串?无需多条件判断

当然可以!用Ruby原生格式化轻松实现

完全没必要写一堆if判断来处理数字位数,Ruby提供了好几种原生方法来帮你快速实现补零格式化,而且代码非常简洁:

方法1:使用sprintf或字符串%操作符

这是最经典的格式化方式,%03d表示将数字格式化为3位十进制数,不足的部分用0自动补齐:

(1..134).each do |x|
  puts sprintf("%03d", x)
  # 或者等价的更简洁写法:
  # puts "%03d" % x
end

方法2:使用String#rjust方法

如果你更倾向于字符串操作,rjust可以把字符串右对齐,并用指定字符填充到目标长度:

(1..134).each do |x|
  puts x.to_s.rjust(3, '0')
end

这里rjust(3, '0')会把数字转成字符串后,左边补0直到总长度为3,刚好满足你的需求。

方法3:使用format方法(Ruby 1.9+)

format方法和sprintf功能一致,写法更直观一些:

(1..134).each do |x|
  puts format("%03d", x)
end

以上几种方法都完全是Ruby原生支持的,不需要额外依赖,而且因为你明确不需要处理超过3位的数字,这些方法都能完美输出001、002…011…134的格式。

内容的提问来源于stack exchange,提问作者timpone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:50:39