我有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个空格。
我该怎么做(最好是一行)?
答案 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