我有一个字符串。我需要拆分它并为哈希值分配值。但在分配之前,我需要修改原始数组并连接其中的一些元素,然后再次重新创建数组。请帮我看看如何在红宝石中做到这一点。
考虑
array = ["unix", "2", "[", "ACC", "]", "STREAM", "LISTENING", "12459", "tmp/control"].
我需要连接“[”,“ACC”,“]”。
现在新的数组应该看起来像
array = ["unix", "2", "[ ACC ]", "STREAM", "LISTENING", "12459", "tmp/control"].
请建议。
答案 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"]