在ruby中将数字读入数组

在ruby中将数字读入数组,ruby,arrays,filereader,Ruby,Arrays,Filereader,我试图在ruby中,在一定条件下,将txt文件中的数字读入数组。文本文件输入如下所示: 1 2 3 4 5 6 7 8 9;10 11 12 1 2 3 4 5 6 7 8 9;10 11 12 我要做的是把数字读到“;”,将它们存储在数组中,在该数组上执行一个方法,然后清除该数组并再次开始读取分号。在这里,您可以通过上面的输入看到程序的执行: 读取[1,2,3,4,5,6,7,8,9]->执行方法X->[]清除数组->[10 11 12]->执行方法X 我认为下面代码的一个变体就可以做到这一点

我试图在ruby中,在一定条件下,将txt文件中的数字读入数组。文本文件输入如下所示:

1 2 3 4 5 6 7 8 9;10 11 12 1 2 3 4 5 6 7 8 9;10 11 12 我要做的是把数字读到“;”,将它们存储在数组中,在该数组上执行一个方法,然后清除该数组并再次开始读取分号。在这里,您可以通过上面的输入看到程序的执行:

读取[1,2,3,4,5,6,7,8,9]->执行方法X->[]清除数组->[10 11 12]->执行方法X

我认为下面代码的一个变体就可以做到这一点,但我自己对ruby的了解还不够

 a = []
 File.open('names.txt') do |f|
   f.each_line do |line|
     a << line.split.map(&:to_i)
   end
 end
a=[]
File.open('names.txt')do | f|
f、 每条线都要做|

a你可以这样做

f = File.read 'names.txt' 
f.split(';').each  do |set|
  method_x(set.split.map(&:to_i))
end
这假设方法_x将数组作为参数

File.read('names.txt').split(';').each { |x| the_function(x.split.map(&:to_i)) }
其中,
_函数
是您所需的函数

我将执行以下操作:

File.readlines('a.txt',';').each do |string|
  ary = string.scan(/\d+/).map(&:to_i)
  method_x(ary)
end
您可以将行分隔符设置为
,如文档所示

将名称指定的整个文件作为单独的行读取,并以数组形式返回这些行。行由
sep
分隔