Ruby:如何将一个数组的元素与前缀一起加入?

时间:2009-04-29 17:18:25

标签: ruby arrays string

我有一个像这样的数组:

["marblecake", "also", "the", 1337]

我想找回一个字符串,其中包含以某个指定字符串为前缀的数组的每个元素,然后由另一个指定的字符串连接在一起。例如,

["marblecake", "also", "the", 1337].join_with_prefix("%", "__")

应该导致

# => %marblecake__%also__%the__%1337

我该怎么做?

4 个答案:

答案 0 :(得分:41)

如果你的阵列在a,那么这个单行将会这样做

a.map { |k| "%#{k}" }.join("_")

您可以轻松地将其添加到您自己的函数中 - 甚至可以将其添加到Array类,以便您可以在数组中调用它,就像在您的示例中一样。

注意'!'地图版本(map!)将修改数组 - 也许不是你的意图。

答案 1 :(得分:10)

虽然这是一个非常古老的问题,但我想补充一点:

a.any? && "%".+(a.join("__%"))

答案 2 :(得分:2)

根据上述建议:

class Array
  def join_with_prefix(prefix,separator)
    self.collect {|e| prefix.to_s + e }.join(separator)
  end
end

p ['ab','cd','ef'].join_with_prefix('%','__')
=> "%ab__%cd__%ef"

答案 3 :(得分:-1)

我今天正在寻找解决方案。我发现了这个问题。这是我的解决方案。

array = ["marblecake", "also", "the", 1337];
arrayString = ''

array.each{|x| arrayString += "%" + x + "__"}