1

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

考虑

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

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

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

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

请建议。

4

2 回答 2

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"]
于 2013-11-08T14:23:40.453 回答
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"]
于 2013-11-08T12:41:25.810 回答