在ruby中的字符串之前和之后添加空格?

问题描述:

我想在随机字符串之前和之后添加一个空格。我试过使用“Random_string”.center(1,“”)但它不起作用。在ruby中的字符串之前和之后添加空格?

感谢

+0

'str.ljust(INT)'和'str.rjust(INT)“是13个字符长

'是方法我一直在寻找,当我来到这个岗位。 [https://ruby-doc.org/core-2.2.0/String.html#method-i-ljust] – 2017-01-07 15:24:14

我的红宝石是生疏,但IMO无可厚非用最简单的方式

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

padded_random_string = pad("random_string") 

中心

"random_string".center("random_string".length + 2) 
+1

不应该是'pad(“random_string”)'? – 2010-07-28 23:39:44

+0

嘿,我声称红宝石锈:)修复它... – 2010-07-29 16:38:40

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的参数是总长度所需的输出字符串(包括填充)。

+0

基于文档,你不需要第二个参数居中,但我没有测试,所以它可能是错误的:) – 2010-07-28 22:09:51

+0

@卢卡斯第二个参数(如果存在)是一个用作填充字符的字符串。如果省略,则使用空格。我认为这是Ruby 1.8的一个补充,并且该链接可能引用版本1.6。 – bta 2010-07-28 22:17:38

+0

没错。我应该说你不需要它来满足他的要求,因为基于他的问题,他想要追加空间。 – 2010-07-28 22:35:08

我的意思是,有没有理由不能这样做?

padded_string = ' ' + random_string + ' ' 

我觉得这是最优雅的解决方案:

padded_string = " #{random_string} "

没有错,采取讨巧。

+0

这是最干净的解决方案。 – 2012-06-16 19:21:04

“Random_string” .ljust( “Random_string”。长度+ 4).rjust( “Random_string”。长度+ 8)
或 “Random_string” .ljust(17).rjust(21)#,其中“Random_string使用.ljust法.rjust方法

+0

换句话说,只是.ljust加上.rjust方法一起 – 2016-11-23 22:50:41