如何用逗号将数组元素拆分成其他类似新数组的元素

时间:2012-08-14 13:18:18

标签: ruby

到目前为止,我已将整个文件加载到一个数组中(每个数组元素一行)。然后我学会了如何搜索所需的正确行。现在我需要分割这些行,以便我可以使用这些数据。

1个数组元素(文件中的1行): 数据,数据,数据,数据,数据

第一个数据列是文本,其他数据是数字。 我如何从这里将这些数据拆分成一些东西,这样我就可以在这些列中的一个上加上数学,或者加上2个,等等?

仅作为次要说明。我有一个包含数千行的文件。但我一次挑选20个元素。所以我需要为20个彼此相邻的元素做这个。阵列[56],57,58,等等。

所以我可以在第1行第2列 - 第3行第4列进行数学运算。 (如果这是在excel中设置的那就是这样 - 但是你明白了 - 但只要我知道如何获取个人数据,它就可以以任何方式设置)

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用String::split

"1,2,3,4,a,b,c,d".split(',')         #=> ["1", "2", "3", "4", "a", "b", "c", "d"]

然后,您可以根据需要将数组元素转换为整数或浮点数,如

str = "1,2,3,4,a,b,c,d"
arr = str.split(",")

i = arr[0].to_i
f = arr[1].to_f

此外,如果您使用的是CSV文件,则可以考虑使用Ruby's CSV library

答案 1 :(得分:1)

您描述的文件结构与csv文件类似。要解析ruby中的csv文件,可以使用 surprise ... CSV库,它是ruby std库的一部分。

require 'CSV'
data = CSV.read(path_to_your_csv_file)

现在,您已加载数据。每次使用each_cons

时迭代大块
data.each_cons(20) do |rows| 
  #do something
end