Как разделить строку с разделителями в Ruby и преобразовать ее в массив?
у меня есть строка
"1,2,3,4"
и я хотел бы преобразовать его в массив:
[1,2,3,4]
Как?
5 ответов
>> "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 docs
делит str на подстроки на основе разделителя, возвращая массив из этих подстрок.
если pattern-строка, то ее содержимое используется в качестве разделителя при разделении ул. Если pattern-это одно пространство, str разделись! пробелы, с ведущими пробелами и прогонами смежных пробелов символы игнорируются.
если pattern является регулярным выражением, str делится там, где шаблон соответствует. Всякий раз, когда шаблон соответствует строке нулевой длины, str разбивается на отдельный персонаж. Если шаблон содержит группы, соответствующие совпадения также будут возвращены в массиве.
если шаблон опущен, используется значение$;. Если $; равно нулю (что равно по умолчанию), str разделен на пробелы, как если бы были указаны.
если параметр limit опущен, конечные нулевые поля подавленный. Если limit-положительное число, не более этого числа поля будут возвращены (если limit равен 1, возвращается вся строка как единственная запись в массиве). Если отрицательный, нет предела количество возвращаемых полей и завершающих нулевых полей не подавленный.
"12345".each_char.map(&:to_i)
each_char
делает в основном то же самое, что и split('')
: он разбивает строку на массив его персонажей.
хммм, теперь я просто понимаю, что в исходном вопросе строка содержит запятые, поэтому мой ответ не очень полезен ; - (..