Ruby连接字符串并添加空格

时间:2010-03-12 18:26:58

标签: ruby string concatenation

我有4个字符串变量name, quest, favorite_color, speed可能为空。我想将它们连接在一起,在非空的空格之间放置空格。代码的简单性,即查看和理解的简单程度,比速度更重要。

所以:

name = 'Tim'
quest = 'destroy'
favorite_color = 'red'
speed = 'fast'

变为

'Tim destroy red fast'

name = 'Steve'
quest = ''
favorite_color = ''
speed = 'slow'

变为:

'Steve slow'

请注意,'Steve'和'slow'之间只有1个空格。

我该怎么做(最好是一行)?

3 个答案:

答案 0 :(得分:77)

[name, quest, favorite_color, speed].reject(&:empty?).join(' ')

答案 1 :(得分:19)

尝试[name,quest,favorite_color,speed].join(' ').squeeze(' ')

答案 2 :(得分:5)

您可以使用注入:

[name,quest,favorite_color,speed].inject("") {|k,v| v.empty? ? k : k << " " << v }.strip