Ruby: преобразовать строку в массив

a = IO.readlines('uniqID.txt')
puts id = a[0]
id = ["Gh089k" , "HG987"] #getting value from txt file 
id.class #String
id.push("GD977")

Как преобразовать указанную выше строку в массив. так что я использую такой метод, как push. Здесь id строка выглядит как массив

Error: undefined method `push' for "[\"Gh089k\", \"HG987\"]":String (NoMethodError)

Не могли бы вы проверить пример кода? id должен иметь тип Array: [23] pry(main)> id = ["Gh089k" , "HG987"] => ["Gh089k", "HG987"] [25] pry(main)> id.class => Array

mrzasa 10.04.2018 14:32

@mrzasa тип идентификатора - строка. id.class выдает строку в качестве вывода

compsy 10.04.2018 14:34

можешь поставить первую строчку своего файла uniqID.txt? Похоже, это "[\"Gh089k\", \"HG987\"]", поэтому, когда рубин его читает, это просто строка ...

muZk 10.04.2018 14:36

пожалуйста, просто запустите id = ["Gh089k" , "HG987"]; id.class в консоли

mrzasa 10.04.2018 14:36

@mrzasa id = ["Gh089k", "HG987"]; Это дает тип Array. но когда я читаю из txt, он действует как строка типа

compsy 10.04.2018 14:38

@compsy в вашем примере кода вы назначаете ["Gh089k" , "HG987"] на id, тем самым перезаписывая любое предыдущее значение. Следовательно, id.class - это Array, а не String. Если вы хотите показать что-то еще, вам следует соответствующим образом отредактировать свой пример (возможно, предоставить два примера).

Stefan 10.04.2018 15:37
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
6
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже на строку JSON. Вы можете проанализировать строку json, чтобы получить желаемый результат.

require 'json'
JSON.parse("[\"Gh089k\", \"HG987\"]") # => ["Gh089k", "HG987"]

Здесь:

id = JSON.parse(a[0])

Надеюсь, поможет !

Другие вопросы по теме