将数组元素从字符串转换为整数

时间:2015-11-20 04:53:57

标签: ruby

我有这个字符串:

["1","2","3","4"] 

我需要把它变成这样的数组:

[1,2,3,4]

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

"IssueDate": "/Date(1407445200000+0300)/",

答案 1 :(得分:2)

使用 map map! to_i

> a = ["1","2","3","4"]
> a.map(&:to_i)
#=> [1, 2, 3, 4] 
> a
#=> ["1", "2", "3", "4"]
> a.map!(&:to_i)
#=> [1, 2, 3, 4] 
> a
#=> [1, 2, 3, 4]

注意: mapmap!之间的区别是map方法将返回新数组,而map!方法将覆盖原始数组。了解更多信息 Refer Doc

答案 2 :(得分:1)

您有一个数组,其中每个元素都是字符串,并且您希望将每个元素转换为整数

Ruby中的一些方法可以帮助您Array#map成为最方便的。

Map将块作为参数,并针对数组中的每个元素运行它,并返回一个新数组,其中元素是每个转换的结果。所以,如果你做的事情如下:

["1","2","3"].map do |n|
  n.to_i
end

对于每个元素,它会调用块(do / end之间的所有内容),makin n 假设要转换的元素的值。

您可以重写上面的代码段以使用花括号而不是do / end block:

["1","2","3"].map { |n| n.to_i }

或者更好的是,使用Ruby的& 运算符直接调用#to_i:

["1","2","3"].map(&:to_i)

答案 3 :(得分:0)

感谢您的回复。刚放松,我错误地写了这个问题。

应该是:

我有一个字符串:

a = "["1","2","3","4"]"

我想返回一个数组:

a = [1,2,3,4]

我最终这样做了:

JSON.parse(a).map{|a| a.to_i})