【问题标题】:trying to add .dat file contents to a 2d array in ruby.尝试将 .dat 文件内容添加到 ruby​​ 中的二维数组。
【发布时间】:2011-11-23 11:22:49
【问题描述】:

我正在尝试读取这个.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

【问题讨论】:

    标签: ruby arrays multidimensional-array


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我建议您使用来自 ruby​​ 的 csv 库。只需在选项中将:col_sep 指定为空白

      CSV.foreach(path, 'r', :col_sep => ' ') do |row|
        ...
      end
      

      【讨论】:

        猜你喜欢
        • 2017-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 2015-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多