1

私はひもを持っています。それを分割し、値をハッシュに割り当てる必要があります。ただし、割り当てる前に、元の配列を変更し、その要素の一部を連結してから、配列を再作成する必要があります。Rubyでそれを行う方法を教えてください。

検討

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

「[」、「ACC」、「]」を連結する必要があります。

新しい配列は次のようになります

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

提案してください。

4

2 に答える 2

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"]
于 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 に答える