ruby字符串格式格式

MxL*_*evs 4 ruby

我有一组名称如下的文件名

"file001" "file0001" ...
"file002" "file0002" ...
...
"file100" "file0100" ...
...

模式非常明显:

name, padded_number

因此,如果我想对第一列中的文件使用字符串格式,我会写

"%s%3d" %[name, number]"

但这个硬编码填充(3).我怎样才能这样做,以便我可以将pad指定为变量,并以某种方式格式化提供的整数以使用指定的填充?

Cod*_*lan 9

使用字符串插值:

padding = 9
"%s%#{padding}d" %[name, number]
Run Code Online (Sandbox Code Playgroud)

  • 你不需要一个'0`吗?` "%S%0#{填充} d"` (3认同)

ste*_*lag 8

prefix = "file"
number = "1"
padding = 4
filename = prefix + number.rjust(padding, '0') #=> "file0001"
Run Code Online (Sandbox Code Playgroud)