将一串数字作为字符串推入数组中

时间:2014-07-03 16:35:57

标签: ruby arrays variables

我有一个如下所示的变量:

my_var = "123, 222, 333, 444, 555, 1024, 44444"

很难确定将每个值推送到数组中。

my_array = []
my_array.push(my_var)
=> ["123, 222, 333, 444, 555, 1024, 44444"]
puts my_array[0]
=> 1

我想得到:

puts my_array[0]
=> 123

2 个答案:

答案 0 :(得分:2)

首先使用String#split方法获取字符串的数组,然后使用String#to_i将其转换为 integer

ary = my_var.split(",").map(&:to_i)
# => [123, 222, 333, 444, 555, 1024, 44444]
p ary[0]
# => 123

或使用String#scan方法

ary = my_var.scan(/\d+/).map(&:to_i)
# => [123, 222, 333, 444, 555, 1024, 44444]
p ary[0]
# => 123

答案 1 :(得分:2)

另一种方法是使用Ruby的CSV类:

require "csv"

my_var = "123, 222, 333, 444, 555, 1024, 44444"

CSV.parse_line(my_var, converters: :numeric)
#=> [123, 222, 333, 444, 555, 1024, 44444]