2017-09-11 27 views
0

我是Elixir的新手。 我正在嘗試從文件中將文本轉換爲圖形。從Elixir的文件流中操縱字符串

文件被格式化爲例如:

1 2 
1 3 
2 3 

每個數字被連接的節點的ID。

我怎樣才能從String.split/1函數的2個值到程序中的其他地方?這是我到目前爲止:

File.stream!("../text_file") 
    |> Stream.map(&(String.replace(&1, "\n", ""))) 
    |> Enum.each(String.split/1) 

它只會輸出:OK原子,但如果我換String.split/1 IO.puts將打印內容/ 1

回答

1

Enum.each/2是旨在用於您不關心返回值的功能(通常只帶有副作用的功能,如IO.puts)。如果你想收集返回的數據,你需要Enum.map/2。另外,如果你想刪除尾隨空白,你應該使用String.trim_trailing/1

File.stream!("a") 
|> Stream.map(&String.trim_trailing/1) 
|> Enum.map(&String.split/1) 
|> IO.inspect 

輸出:

[["1", "2"], ["1", "3"], ["2", "3"]]