试图在ruby中编写一个方法,只接受带有整数的项并转换为数组

时间:2014-07-16 20:40:33

标签: ruby arrays regex ruby-on-rails-3

我正在尝试将以下字符串转换为带有整数列表的数组。

"---\n- ''\n- '1060500964'\n- '1060500869'\n- '106050099..."

数组应如下所示:[1060500964, 1060500869, 106050099]

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

看起来像YAML。您可以使用标准YAML库解析它(因为ruby 1.9.2):

require 'yaml'
YAML.load("---\n- ''\n- '1060500964'\n- '1060500869'\n- '106050099'")
 .reject(&:empty?)
 .map(&:to_i)
=> [1060500964, 1060500869, 106050099]

答案 1 :(得分:0)

这是一个可能的解决方案:

numbers = []
string_array = "---\n- ''\n- '1060500964'\n- '1060500869'\n- '106050099...".delete("'").split
string_array.each do |item|
    num = item.to_i
    numbers << num if num!=0
end