Ruby - Array.length返回字符数而不是元素数

时间:2013-12-23 19:15:43

标签: ruby

我正在使用Ruby 2.0进行Rails项目,并且在控制台中获取数组的元素长度时遇到了一些问题。

第一个例子

2.0.0-p353 :001 > search = "test"
 => "test" 
2.0.0-p353 :002 > search.split
 => ["test"] 
2.0.0-p353 :003 > search.length
 => 4 

第二个例子

2.0.0-p353 :001 > search = "testOne, TestTwo"
 => "testOne, TestTwo" 
2.0.0-p353 :002 > search.split(/[\s,]+/)
 => ["testOne", "TestTwo"] 
2.0.0-p353 :003 > search.length
 => 16 

如何返回元素数而不是字符数?

2 个答案:

答案 0 :(得分:5)

好吧,你没有分配你的分裂数组,这就是你看到差异的原因。 你实际做的是定义一个字符串search,然后尝试操纵同一个字符串。

试试这个

testArray = search.split
testArray.size
>> 1

答案 1 :(得分:2)

在第一个示例中,您将获得"test"字符串的长度,而不是["test"]数组的长度。您应该首先将其分配给变量。

即:

search = "test"       # => "test"
array = search.split  # => ["test"]
array.length          # => 1