我想知道Ruby中是否有一个方法可以在最小的部分中分割Array
个String
。考虑:
['Cheese crayon', 'horse', 'elephant a b c']
是否有方法将其转换为:
['Cheese', 'crayon', 'horse', 'elephant', 'a', 'b', 'c']
答案 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"]