Ruby字符串数组:分成最小的部分

时间:2015-03-20 10:12:33

标签: ruby

我想知道Ruby中是否有一个方法可以在最小的部分中分割ArrayString。考虑:

['Cheese crayon', 'horse', 'elephant a b c']

是否有方法将其转换为:

['Cheese', 'crayon', 'horse', 'elephant', 'a', 'b', 'c']

4 个答案:

答案 0 :(得分:7)

p ['Cheese crayon', 'horse', 'elephant a b c'].flat_map(&:split)
# => ["Cheese", "crayon", "horse", "elephant", "a", "b", "c"]

答案 1 :(得分:4)

我不知道。但是您可以单独拆分每个字符串,然后将结果展平为一个数组:

p ['Cheese crayon', 'horse', 'elephant a b c'].map(&:split).flatten

答案 2 :(得分:1)

你可以这样做:

array.map { |s| s.split(/\s+/) }.flatten

这会将您的字符串拆分为任意数量的空白字符。据我所知,这是split没有任何参数的默认行为,因此您可以将其缩短为:

array.map(&:split).flatten

答案 3 :(得分:1)

['Cheese crayon', 'horse', 'elephant a b c'].join(' ').split
# => ["Cheese", "crayon", "horse", "elephant", "a", "b", "c"]