如何将字符串推入数组

时间:2015-01-13 07:06:01

标签: ruby arrays regex

我正在匹配一个模式,我需要拆分并将其推入一个数组。

a = Array.new
doc = "<span>Hi welcome to world</span>"
len = doc.length
puts doc.scan(/o/)
a << doc.scan(/o/)
puts a.length

上述代码的输出为

o
o
o
1

数组的长度为 1

我希望数组的长度为 3

而不是将完整的字符串推入数组。我想把它推到三个不同的元素

1 个答案:

答案 0 :(得分:2)

您需要使用Array#concat方法。

a = Array.new
doc = "<span>Hi welcome to world</span>"
len = doc.length
puts doc.scan(/o/)
a.concat doc.scan(/o/)
puts a.length # => 3

doc.scan(/o/)为您提供['o', 'o', 'o']a << doc.scan(/o/)为您提供[['o', 'o', 'o']],而不是['o', 'o', 'o']。这就是为什么您将a的大小设为1

您可以使用Array#concat制作想要实现的目标。由于a.concat doc.scan(/o/)会准确地为您提供['o', 'o', 'o'],因此a的大小现在为3

但你可以把它写成:

doc = "<span>Hi welcome to world</span>"
len = doc.length
puts doc.scan(/o/)
a = doc.scan(/o/)
puts a.length # => 3

不需要查看此迷你代码a = Array.new