2016-01-29 105 views
0

我有一個設置文件,我正在讀取文件,並讀取一個字符串,並將其轉換爲散列以便於使用。將設置文件轉換爲散列

我如何轉換以下:

string="key1=value1\nkey2=value2" 

分爲:

{"key1" => "value1", "key2" => "value2"} 
+0

的邏輯並不清楚。 ''value2''從哪裏來? – sawa

+0

字符串中的拼寫錯誤值。現在有意義嗎? – Pabi

回答

1

你可以這樣做:

string.split("\n").map{|s| s.split("=")}.to_h 

各地的新線一分。

string.split("\n") 
#=> ["key1=value1", "key2=v vlue2"] 

接着,分割各字符串周圍=

string.split("\n").map{|s| s.split("=")} 
#=> [["key1", "value1"], ["key2", "v vlue2"]] 

接下來,2-元件陣列的陣列轉換成散列通過調用to_h方法。

string.split("\n").map{|s| s.split("=")}.to_h 
#=> {"key1"=>"value1", "key2"=>"v vlue2"} 
1
Hash[*string.split(/[\n=]/)] # => {"key1"=>"value1", "key2"=>"value2"}