У меня есть строка
"1,2,3,4"
и я хотел бы преобразовать его в массив:
[1,2,3,4]
Как?
У меня есть строка
"1,2,3,4"
и я хотел бы преобразовать его в массив:
[1,2,3,4]
Как?
Ответы:
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
Или для целых чисел:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
Или для более поздних версий ruby (> = 1.9 - как указал Алекс):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
String Integer
без места, какString
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
с пространством какString
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
без места, какInteger
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
Пояснение :
arr
-> строка, которую вы собираетесь выполнить любое действие.split()
-> это метод, который разделяет ввод и сохраняет его как массив.''
или ' '
или ','
-> это значение, которое необходимо удалить из заданной строки.Самый простой способ преобразовать строку с разделителем в виде запятой - это просто использовать метод split
"1,2,3,4".split(',') # "1", "2", "3", "4"]
Вы можете найти больше информации о том, как использовать метод split в документах ruby.
Делит str на подстроки на основе разделителя, возвращая массив этих подстрок.
Если pattern является String, то его содержимое используется в качестве разделителя при разбиении str. Если шаблон представляет собой один пробел, str разделяется на пробельные символы, причем начальные пробельные символы и серии непрерывных пробельных символов игнорируются.
Если pattern является регулярным выражением, str делится там, где образец совпадает. Всякий раз, когда шаблон соответствует строке нулевой длины, str разбивается на отдельные символы. Если шаблон содержит группы, соответствующие совпадения будут также возвращены в массиве.
Если шаблон опущен, значение $; используется. Если $; равен nil (это значение по умолчанию), str разделяется на пробелы, как если бы было указано `'.
Если параметр limit пропущен, завершающие нулевые поля подавляются. Если limit является положительным числом, будет возвращено не более того количества полей (если limit равно 1, вся строка возвращается как единственная запись в массиве). При отрицательном значении число возвращаемых полей не ограничено, а завершающие нулевые поля не подавляются.
"12345".each_char.map(&:to_i)
each_char
делает в основном то же самое, что и split('')
: Он разбивает строку на массив своих символов.
хммм, я только сейчас понимаю, что в исходном вопросе строка содержит запятые, поэтому мой ответ не очень полезен ;-( ..