试图将.dat文件内容添加到ruby中的2d数组。

时间:2011-11-23 11:22:49

标签: ruby arrays multidimensional-array

我正在尝试阅读此.dat文件,然后将内容添加到二维数组中。

Sean 20000.0 5000.0
John 60000.0 5000.0
Patricia 50000.0 7000.0
Lucy 80000.0 4000.0
Marie 34000.0 6800.0
Michael 42000.0 3000.0
Aoife 22000.0 5000.0
Barry 10000.0 4000.0
Angela 65000.0 6000.0
Luke 35000.0 4000.0
Ciara 8000 5000
Sean 200000.0 5000.0

这是我到目前为止的代码,但它在gets方法上给出了错误。

class Taxpayer

  def initialize filename
    @input = IO.readlines(filename)
    @info=[]
    end

  def set_up
   size = @input.length

    i = 0
    while i < size
        @info << (@input.gets).split(' ')
    end
  end
end

2 个答案:

答案 0 :(得分:1)

@input数组的每个元素都是一个String,因此如果要将每一行存储为数组,则需要从@input中弹出每一行,将它们沿空格分开,然后将该数组存储为新元素@info,像这样:

@input.each do |x|
    row = x.split
    @info << row
end

请记住,每个新内部数组的每个元素都是字符串,因此如果您想稍后使用它们,您还需要将每个数组的最后两个元素转换为浮点数。

答案 1 :(得分:0)

我建议您使用ruby中的csv库。只需在选项

中将:col_sep指定为空白即可
CSV.foreach(path, 'r', :col_sep => ' ') do |row|
  ...
end