在使用正则表达式的Ruby中,我想修改给定的字符串,该字符串将短于或恰好为15个字符,因此通过添加空格使其始终为15个字符。
例如:
'apple' => 'apple(10 spaces here)'
'orange' => 'orange(9 spaces here)'
'fifteenspaceshi' => 'fifteenspaceshi'
我已经尝试过了,并且可以正常工作,但是正则表达式会有更好的解决方案吗?
x = 'apple'
x = x + ' '*(15 - x.length)
答案 0 :(得分:8)
无需涉及正则表达式
"apple".ljust(15) # => "apple "
答案 1 :(得分:5)
根据问题的复杂性,我认为Sergio的答案是最好的,但是如果以后需要更复杂的格式,也可以使用字符串格式(sprintf
):
"%-15s" % "apple" # => "apple "
阅读documentation中的模式以及如何读取/写入它们。
答案 2 :(得分:2)
这是使用左填充技巧的另一种方法:
padding = " "
input = "123" + padding
puts input.chars.first(15).join
"123 "
^^ 12 spaces
这里的想法是将包含15个空格的字符串连接到输入字符串的 right 。然后,我们保留该连接结果的前15个字符。