Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件的行复制到ruby中的hashmap中_Ruby - Fatal编程技术网

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

将文件的行复制到ruby中的hashmap中,ruby,Ruby,我有一个多行的文件。在每一行中,有两个单词和一个数字,用逗号分隔,例如a、b、1。这意味着字符串A和字符串B的键为1。我写了下面的代码 File.open(ARGV[0], 'r') do |f1| while line = f1.gets puts line end end 我正在寻找一个如何拆分和复制字符和数字的方法,使前两个单词的最后一个数字作为hashmap中的键 这对你有用吗 hash = {} File.readlines(ARGV[0]).ea

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

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

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

这对你有用吗

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

hash['1'] = ['a','b']
我不知道您是想将数字1存储为整数还是字符串,如果您要查找的是整数,只需在存储之前执行
var[2].\u I


稍微修改一下你的代码,我认为这样比较短,如果我有任何错误,一定要告诉我。

hi,实际上新行“\n”也在被复制,现在看起来像{“1\n”=>[“a”,“b”]}。我也需要删除\n。有什么想法吗?哦,对不起,在存储之前,您可以执行
var[2]。chop
或者如果您将其存储为整数,则
.to\u i
方法将自行处理。