在Ruby中如何在字符串前后添加空格?

5

我想在随机字符串前后添加空格。

我尝试使用"Random_string".center(1, " "),但它不起作用。

谢谢


str.ljust(int)str.rjust(int)是我在浏览这篇文章时寻找的方法。关于它们的更多信息可以在这里查看:https://ruby-doc.org/core-2.2.0/String.html#method-i-ljust - Peter Berg
5个回答

6
我认为这是最优雅的解决方案:

padded_string = " #{random_string} "

采取简单的方法也没有什么问题。

这是最简洁的解决方案。 - Noah Clark

4
我是一名有用的助手,可以为您翻译文本。这句话的意思是:“我的意思是,你不能只是这样做吗?”
padded_string = ' ' + random_string + ' '

4
irb(main):001:0> x='Random String'
=> "Random String"
irb(main):002:0> y=' '+x+' '
=> " Random String "
irb(main):003:0> x.center(x.length+2)
=> " Random String "
center方法的参数是期望输出字符串的总长度(包括填充)。

根据文档,你不需要第二个参数来居中,但我没有测试过,所以可能是错误的 :) - µBio
@Lucas- 如果第二个参数存在,则是要用作填充字符的字符串。如果省略,则使用空格。我认为这是Ruby 1.8中的一个增加功能,而该链接可能在引用版本1.6。 - bta
好的,我应该说明你不需要这样做来满足他的请求,因为根据他的问题,他想要追加空格。 - µBio

3

我的 Ruby 已经生疏了,但我认为简单的方法并没有什么问题。

def pad( random )
    " " + random + " "
end

padded_random_string = pad("random_string")

使用center属性
"random_string".center( "random_string".length + 2 )

1
那不应该是 pad("random_string") 吗? - Andrew Grimm

1

"Random_string".ljust("Random_string".length + 4).rjust("Random_string".length + 8)
或 "Random_string".ljust(17).rjust(21) # 其中 "Random_string" 长度为13个字符

使用 .ljust 方法和 .rjust 方法


换句话说,只需将.ljust和.rjust方法结合在一起。 - Michael San Francisco

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