我的程序的目标是读取一个文件,该文件具有由空格分隔的数字网格。要在我的程序中处理它,我需要它是一个多维数组。我试图这样做:
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。 谢谢你的帮助。
答案 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 } }