Ruby字符串格式化

6

我有一组文件名,格式如下:

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

模式很明显:

名称,填充数字

因此,如果我想要对第一列的文件使用字符串格式化,我只需要编写以下代码:

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

但是这种方法硬编码了填充(3)。我该如何使其成为可变的变量,并且能够将提供的整数格式化为使用指定填充的形式呢?

2个回答

11

使用字符串插值:

padding = 9
"%s%#{padding}d" %[name, number]

这将导致输出 "file" 后面跟着8个空格和一个 "1"。 - steenslag
3
你需要在里面加一个 0 吗?"%s%0#{padding}d" - Adrian Pronk
你们说得没错,但它仍然回答了他的“核心”问题,即在格式字符串中嵌入变量。是的,他实际上需要调整格式字符串。 - Cody Caughlan
1
format("%s%0#{padding}d", name, number) 符合 Ruby 的样式指南验证。 - Sebastian

9
prefix = "file"
number = "1"
padding = 4
filename = prefix + number.rjust(padding, '0') #=> "file0001"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接