2011-01-31 190 views
51

有什麼辦法在Ruby中將逗號分隔的字符串轉換爲數組?例如,如果我有這樣一個字符串:如何將逗號分隔的字符串轉換爲數組?

"one,two,three,four" 

我該如何將它轉換成這樣的數組?如果你想忽略前/後空格使用

"one,two,three,four".split(',') 
# ["one","two","three","four"] 

"one , two , three , four".split(/\s*,\s*/) 
# ["one", "two", "three", "four"] 

如果要分析多行(即

["one", "two", "three", "four"] 
+0

爲什麼會出現「csv」標記?這不適用於`.csv`文件,只是一個用逗號分隔的字符串。 – 2011-01-31 13:17:06

+0

CSV代表逗號分隔值。這就是你的字符串。這是以字符串格式存儲串行或表格數據的一種非常標準的方式。它不一定需要直接從文件中讀取。 – 2011-01-31 17:14:21

+0

@Lèsemajesté:啊,好吧,我只是認爲CSV就是*文件。謝謝! – 2011-01-31 22:00:31

回答

100

使用split方法來做到這一點CSV文件)轉換爲獨立陣列:

require "csv" 
CSV.parse("one,two\nthree,four") 
# [["one","two"],["three","four"]] 
9
>> "one,two,three,four".split "," 
=> ["one", "two", "three", "four"] 
15
require 'csv' 
CSV.parse_line('one,two,three,four') #=> ["one", "two", "three", "four"] 
相關問題