将文件的行复制到ruby中的hashmap中

时间:2013-05-22 21:44:17

标签: ruby

我有一个包含多行的文件。在每一行中,有两个单词和一个数字,用逗号分隔 - 例如a,b,1。这意味着字符串A和字符串B的键为1.我写了下面的代码

File.open(ARGV[0], 'r') do |f1|  
  while line = f1.gets  
    puts line  
  end  
end  

我正在寻找如何分割和复制字符和数字的想法,使前两个单词的最后一个数字作为hashmap中的键。

1 个答案:

答案 0 :(得分:2)

这对你有用吗?

hash = {}
File.readlines(ARGV[0]).each do |line|
     var = line.gsub(' ','').split(',')
     hash[var[2]] = var[0],var[1]
end

这会给:

hash['1'] = ['a','b']

我不知道您是想将第一个存储为整数还是字符串,如果它是您要查找的整数,只需在存储之前执行var[2].to_i

稍微修改一下你的代码,我认为这样做会更短,如果我有任何不妥之处,请告诉我。