我正在从 Ruby 脚本输出一组编号的文件。这些数字来自递增计数器,但为了使它们在目录中很好地排序,我想在文件名中使用前导零。也就是说
file_001...
代替
file_1
在将数字转换为字符串时,是否有一种简单的方法来添加前导零? (我知道我可以做到“如果少于 10……如果少于 100”)。
最佳答案
对字符串使用 %
运算符:
irb(main):001:0> "%03d" % 5
=> "005"
左侧是 printf 格式字符串,右侧可以是值列表,因此您可以执行以下操作:
irb(main):002:0> filename = "%s/%s.%04d.txt" % ["dirname", "filename", 23]
=> "dirname/filename.0023.txt"
这是一个 printf format cheat sheet您可能会发现在形成格式字符串时很有用。 printf格式最初来自C
函数printf
,但是perl、ruby、python、java、php等都有类似的格式化函数。
关于ruby - 如何在 Ruby 中输出前导零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1543171/