Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Collect在从字符串转换为整数时删除0_Arrays_Ruby_Collect - Fatal编程技术网

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

Arrays Collect在从字符串转换为整数时删除0,arrays,ruby,collect,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) => [1

当我使用
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,而在阵列中的其他位置时将其保留?

请看第一个示例中的数字。它是一个单元素数组。因此,这将有效地生成一个包含一个元素的数组:
“0123456789”

试试这个:

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

因为在一个数字的中间有一个零点有意义,但前导零点没有。这是预期的行为。如果您关心字符串是否有前导零,请不要将其转换为整数。正如Brian在回答中指出的,这里的真正问题是您有一个单元素数组,但您似乎需要一个多元素数组。单个字符串元素被转换为单个整数元素,这就是您的“问题”。谢谢!我现在才意识到。我也忘了引用。因此,如果我执行numbers=n.split“”,它会将字符串正确地拆分为一个数组,并按其应该的方式收集函数。标点符号就是一切!“让我们吃奶奶”——标点符号拯救生命!