如何将字符串推入数组
How to push a string into array
我正在匹配一个模式,我需要将它拆分并推入一个数组。
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
而不是将完整的字符串推入数组。我想把它作为三个不同的元素推送
您需要使用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
不需要。
我正在匹配一个模式,我需要将它拆分并推入一个数组。
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
而不是将完整的字符串推入数组。我想把它作为三个不同的元素推送
您需要使用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
不需要。