2013-12-23 32 views
0

我正在使用Ruby 2.0作爲Rails項目,並且在控制檯中獲取數組的元素長度時遇到了一些問題。Ruby - Array.length返回字符數而不是元素數

第一個例子

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 

如何返回元素計數代替字符的算?

+1

'search.split.length => 1' – engineersmnky

回答

5

那麼,你不分配你的拆分數組,這就是爲什麼你看到的差異。 你實際上在做什麼是定義一個字符串search,然後試圖操縱相同的字符串。

嘗試此

testArray = search.split 
testArray.size 
>> 1 
+0

NP,隊友! :)快樂Giftgiving日! –

2

在第一個例子你得到不是["test"]陣列的"test"字符串的長度,。您應該先將它分配給一個變量。

即:

search = "test"  # => "test" 
array = search.split # => ["test"] 
array.length   # => 1 
相關問題