Dav*_*ill 38 ruby string concatenation
我有4个字符串变量name, quest, favorite_color, speed
可能是空的.我想将它们连接在一起,在非空的空格之间放置空格.代码的简单性,即查看和理解的简单程度,比速度更重要.
所以:
name = 'Tim'
quest = 'destroy'
favorite_color = 'red'
speed = 'fast'
Run Code Online (Sandbox Code Playgroud)
变
'Tim destroy red fast'
Run Code Online (Sandbox Code Playgroud)
和
name = 'Steve'
quest = ''
favorite_color = ''
speed = 'slow'
Run Code Online (Sandbox Code Playgroud)
变为:
'Steve slow'
Run Code Online (Sandbox Code Playgroud)
请注意,'Steve'和'slow'之间只有1个空格.
我该怎么做(最好是一行)?
Aar*_*nni 80
[name, quest, favorite_color, speed].reject(&:empty?).join(' ')
Run Code Online (Sandbox Code Playgroud)
bta*_*bta 21
尝试 [name,quest,favorite_color,speed].join(' ').squeeze(' ')
你可以使用注入:
[name,quest,favorite_color,speed].inject("") {|k,v| v.empty? ? k : k << " " << v }.strip
Run Code Online (Sandbox Code Playgroud)