我如何连接数组的一些元素并在ruby中创建数组

时间:2013-11-08 12:36:23

标签: ruby

我有一个字符串。我需要拆分它并为哈希值分配值。但在分配之前,我需要修改原始数组并连接其中的一些元素,然后再次重新创建数组。请帮我看看如何在红宝石中做到这一点。

考虑

  array = ["unix", "2", "[", "ACC", "]", "STREAM", "LISTENING", "12459", "tmp/control"]. 

我需要连接“[”,“ACC”,“]”。

现在新的数组应该看起来像

  array = ["unix", "2", "[ ACC ]", "STREAM", "LISTENING", "12459", "tmp/control"].

请建议。

2 个答案:

答案 0 :(得分:1)

array = ["unix", "2", "[", "ACC", "]", "STREAM", "LISTENING", "12459", "tmp/control"]
m,n = array.index('['),array.index(']')
array[m..n]=array[m..n].join(" ")
p array 
# => ["unix", "2", "[ ACC ]", "STREAM", "LISTENING", "12459", "tmp/control"]

答案 1 :(得分:1)

将此答案发布为1:接受的解决方案仅适用于一组方括号和2:您经常使用触发器解决某些问题的频率?

array = ["unix", "2", "[", "ACC", "]", "STREAM", "[", "some",  "other", "]", "x"]

array = array.chunk{|x| (x=='['..x==']') ? true : false }
            .map{|join, array| join ? array.join(' ') : array}
            .flatten

p array #=> ["unix", "2", "[ ACC ]", "STREAM", "[ some other ]", "x"]