Чи є спосіб перетворити рядок, відокремлений комами, у масив у Ruby? Наприклад, якби у мене був такий рядок:
"one,two,three,four"
Як би я перетворив його на такий масив?
["one", "two", "three", "four"]
Чи є спосіб перетворити рядок, відокремлений комами, у масив у Ruby? Наприклад, якби у мене був такий рядок:
"one,two,three,four"
Як би я перетворив його на такий масив?
["one", "two", "three", "four"]
Відповіді:
Використовуйте split
метод, щоб зробити це:
"one,two,three,four".split(',')
# ["one","two","three","four"]
Якщо ви хочете ігнорувати пробіли, що ведуть / завершують:
"one , two , three , four".split(/\s*,\s*/)
# ["one", "two", "three", "four"]
Якщо ви хочете проаналізувати кілька рядків (тобто файл CSV) на окремі масиви:
require "csv"
CSV.parse("one,two\nthree,four")
# [["one","two"],["three","four"]]
str_getcsv
яка автоматично обробляє процитовані CSV-файли, значення, що містять (екрановані) коми, багаторядкові CSV-файли тощо?
"one, two, three, four".split(/\s*,\s*/)
. Спліт також працюватиме з регулярним виразом. Як варіант, ви можете скористатися map
методом, якщо віддаєте перевагу такому синтаксису:"one, two, three, four".split(',').map(&:strip)
require 'csv'
CSV.parse_line('one,two,three,four') #=> ["one", "two", "three", "four"]
nil
для порожніх елементівCSV.parse_line("one,two,,four") #=> ["one", "two", nil, "four"]
>> "one,two,three,four".split ","
=> ["one", "two", "three", "four"]
.csv
файлами, просто рядок, відокремлений комами.