我有一个如下所示的变量:
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
答案 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]