2012-05-02 65 views
4

我有一组名为类似下面红宝石字符串格式格式化

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

模式的文件名是很明显的:

name, padded_number

所以,如果我想使用字符串格式化的文件第一列,我只想写

​​

但这在硬编码填充(3)。我怎样才能做到这一点,以便我可以指定垫作为变量以及以某种方式格式化提供的整数使用指定的填充?

回答

8

使用字符串插值:

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

哦,那很酷。 – MxyL

+0

这会导致“文件”后跟8个空格和“1”。 – steenslag

+3

你不需要'0'吗? ''%s%0#{padding} d“' –

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