代码之家  ›  专栏  ›  技术社区  ›  David Oneill

Ruby连接字符串并添加空格

  •  35
  • David Oneill  · 技术社区  · 14 年前

    我有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 回复  |  直到 7 年前
        1
  •  76
  •   Aaron Hinni    14 年前
    [name, quest, favorite_color, speed].reject(&:empty?).join(' ')
    
        2
  •  19
  •   bta    14 年前

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

        3
  •  5
  •   sjagr    14 年前

    您可以使用inject:

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