从字符串转换为整数时,Collect删除0

时间:2015-10-05 00:51:13

标签: arrays ruby collect

当我使用collect(&:to_i)将字符串数组更改为整数数组时,如果索引位置0处的字符串为“0”,则在转换数组时将删除它。例如:

n = "0123456789"
number = n.split
array = number.collect(&:to_i)
=> [123456789]

砍掉领先的0。

但是,如果我这样做:

n = "1230456789"
number = n.split
array = number.collect(&:to_i)
=> [1230456789]

它将0留在原地。

为什么collect在0位置时删除0,但在数组中的任何其他位置时将其单独删除?

1 个答案:

答案 0 :(得分:1)

查看第一个示例中的数字。它是一个单元素数组。因此,这会产生一个包含一个元素的数组:"0123456789".to_i

试试这个:

n = "0 1 2 3 4 5 6 7 8 9"
numbers = n.split
array = numbers.collect(&:to_i)