Рубин: строка в массив - PullRequest
       2

Рубин: строка в массив

0 голосов
/ 08 марта 2019

Как бы вы преобразовали строку в массив в Ruby?

Что я хочу сделать, это преобразовать строку типа "[value1, value2, value3]" в массив [value1, value2, value3].Имейте в виду, что некоторые из этих значений могут быть самими строками.

Я пытаюсь записать его в метод, называемый str_to_ary.

def str_to_ary
  @to_convert = self
  #however everything I try beyond this point fails
end

Ответы [ 2 ]

8 голосов
/ 08 марта 2019

Ну, это похоже на JSON.

require 'json'

def str_to_ary
  JSON.parse(@to_convert)
end

Обратите внимание, что это верно и работает, только если эти строковые значения находятся между двойными кавычками, а не одинарными кавычками.

1 голос
/ 08 марта 2019

хорошо, если вы знаете, что [ всегда на первом месте, а ] всегда на последнем месте, тогда вы можете начать с

string = "[X, 1, Test, 22, 3]"
trimmed = string[1,string.length-2]
array = trimmed.split(", ")

array => ["X", " 1", " Test", " 22", " 3"]

, если хотите затем разыграть 1, 22или 3 в целых числах, то это другая проблема, которая требует больше размышлений.Какие значения вы ожидаете иметь в массиве?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...