如何在任何给定的字符串中添加空格并保持N个字符?

时间:2019-05-22 15:38:07

标签: regex ruby string

在使用正则表达式的Ruby中,我想修改给定的字符串,该字符串将短于或恰好为15个字符,因此通过添加空格使其始终为15个字符。

例如:

'apple' => 'apple(10 spaces here)'

'orange' => 'orange(9 spaces here)'

'fifteenspaceshi' => 'fifteenspaceshi'

我已经尝试过了,并且可以正常工作,但是正则表达式会有更好的解决方案吗?

x = 'apple'

x = x + ' '*(15 - x.length)

3 个答案:

答案 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个字符。