#ruby #arrays #variables
#ruby #массивы #переменные
Вопрос:
У меня есть переменная, которая выглядит следующим образом:
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
Комментарии:
1. Откуда берется эта строка?
Ответ №1:
Используйте String#split
метод, чтобы сначала получить массив строк, затем преобразовать их в целое число с помощью String#to_i
:
ary = my_var.split(",").map(amp;:to_i)
# => [123, 222, 333, 444, 555, 1024, 44444]
p ary[0]
# => 123
Или используйте String#scan
метод
ary = my_var.scan(/d /).map(amp;:to_i)
# => [123, 222, 333, 444, 555, 1024, 44444]
p ary[0]
# => 123
Ответ №2:
Другой подход заключается в использовании CSV
класса Ruby:
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]