我对Ruby编程非常陌生,但已编写了一段代码来解决最小割问题(是一个作业,我已经编写并测试了这部分代码),但我无法弄清如何读取文件并将其放入数组中。 我有一个文本文件要读取,其中包含不同长度的列,如下所示:
1 37 79 164
2 123 134
3 48 123 134 109
我想将其读入一个二维数组中,其中每行和每列都被拆分,每行进入一个数组。 因此,上面示例的结果数组将为:
[[1, 37, 79, 164], [2, 123, 134], [3, 48, 123, 134, 109]]
我用来读取文本文件的代码如下:
def read_array(file, count)
int_array = []
File.foreach(file) do |f|
counter = 0
while (l = f.gets and counter < count ) do
temp_array = []
temp_array << l.to_i.split(" ")
int_array << temp_array
counter = counter + 1
end
end
return int_array
end
非常感谢您的帮助!
如果有帮助的话,我目前遇到的错误是"block in read_array': private method 'gets' called for # "
我尝试了一些方法,但得到了不同的错误消息...
&:
是什么意思? - winklerrr.map(&:to_i)
相当于.map { |s| s.to_i }
。更具体地说,&
调用符号上的to_proc
方法。参见:http://ruby-doc.org/core-2.3.1/Symbol.html#method-i-to_proc - tessi