Gibt es eine Möglichkeit, eine durch Kommas getrennte Zeichenfolge in Ruby in ein Array zu konvertieren? Wenn ich zum Beispiel eine Zeichenfolge wie diese hätte:
"one,two,three,four"
Wie würde ich es in ein Array wie dieses konvertieren?
["one", "two", "three", "four"]
.csv
Dateien, sondern nur mit einer durch Kommas getrennten Zeichenfolge.Antworten:
Verwenden Sie dazu die folgende
split
Methode:"one,two,three,four".split(',') # ["one","two","three","four"]
Wenn Sie führende / nachfolgende Leerzeichen ignorieren möchten, verwenden Sie:
"one , two , three , four".split(/\s*,\s*/) # ["one", "two", "three", "four"]
Wenn Sie mehrere Zeilen (dh eine CSV-Datei) in separate Arrays analysieren möchten:
require "csv" CSV.parse("one,two\nthree,four") # [["one","two"],["three","four"]]
quelle
str_getcsv
, die automatisch CSVs in Anführungszeichen, Werte wie (Escape-) Kommas, mehrzeilige CSVs usw. verarbeiten?"one, two, three, four".split(/\s*,\s*/)
. Split funktioniert auch mit einem regulären Ausdruck. Alternativ können Sie diemap
Methode verwenden, wenn Sie diese Syntax bevorzugen:"one, two, three, four".split(',').map(&:strip)
require 'csv' CSV.parse_line('one,two,three,four') #=> ["one", "two", "three", "four"]
quelle
nil
für leere Elemente zurückkehrenCSV.parse_line("one,two,,four") #=> ["one", "two", nil, "four"]
>> "one,two,three,four".split "," => ["one", "two", "three", "four"]
quelle