Ruby:从字符串"相同字符串的部分"获取 - 介于它之间

use*_*622 0 ruby string rubygems ruby-on-rails string-matching

我有一个字符串数组

["2 192.168.1.101 10000",56 192.168.1.101 10001","3 192.168.1.101 10002","1 192.168.1.101 10003"]
Run Code Online (Sandbox Code Playgroud)

我想获取部分或每个字符串项,并创建单独的数组,如:

["2","56","3","1"] , ["192.168.1.101","192.168.1.101","192.168.1.101","192.168.1.101"] and
["10000","10001","10002","10003"]
Run Code Online (Sandbox Code Playgroud)

我的问题是如何获得这些角色?

对于第一个数组,它会是从第一个到"空白空间得到<和第二个数组,它会是从""到""得到<和第三个类似于从"到最后得到<

我希望我的问题得到很好的理解,我得到一些回复,谢谢你提前!

Tom*_*Leu 5

比杰夫的回答短一点:

data = ["2 192.168.1.101 10000","56 192.168.1.101 10001","3 192.168.1.101 10002","1 192.168.1.101 10003"]
data.map(&:split).transpose
Run Code Online (Sandbox Code Playgroud)

String#split默认情况下在空格上拆分,当你只需要为每个数组条目调用一个方法时,map { |x| x.do_something }你可以使用更短的方法map(&:do_something).