IO.readlines到多维数组

时间:2013-05-21 19:14:07

标签: ruby string file-io map

我的程序的目标是读取一个文件,该文件具有由空格分隔的数字网格。要在我的程序中处理它,我需要它是一个多维数组。我试图这样做:

arr = IO.readlines("Example.txt")  
arr.map { |string| string.chomp.split.map { |sub_str| sub_str.to_i } }  

此代码在运行时只返回原始数组,字符串和'\ n'。我通过以下方式获得了预期的效果:

arr = IO.readlines("Example.txt")  
int = Array.new  
arr.each { |string| int << string.chomp.split.map { |sub_str| sub_str.to_i } }  

我宁愿改变原始数组而不是创建一个新数组。如何映射数组以获得所需的结果?我是Ruby的新手,我很享受它的OOP'ness。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

只需重新分配原始数组

arr = arr.map { |string| string.chomp.split.map { |sub_str| sub_str.to_i } } 

或使用破坏性map!

arr.map! { |string| string.chomp.split.map { |sub_str| sub_str.to_i } }