将数字字符串转换为数字数组

时间:2010-12-22 07:35:32

标签: ruby-on-rails ruby

在我的应用中,我有一个文本字段,用户可以在其中输入类似的内容

"1,2,3,4"

存储到数据库中。现在,当我想使用内部数字时,我有两个选择:

"1,2,3,4".split(',')

OR

string.scan(/\d+/) do |x|
    a << x
end

我得到像

这样的数组
 ["1","2","3","4"] 

然后我可以通过在每个号码上调用to_i来使用这些号码 有没有更好的方法来做到这一点,转换

"1,2,3" to [1,2,3] and not ["1","2","3"]

4 个答案:

答案 0 :(得分:13)

str.split(",").map {|i| i.to_i}

但这个想法对你来说是一样的......

答案 1 :(得分:1)

你可以这样做。

t = "1,2,3,4".split(',').collect{|n| n.to_i}

答案 2 :(得分:0)

在Ruby 1.9.3中,您可以执行以下操作:

逗号后面没有空格:

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

逗号后面的空格:

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

逗号后面没有空格:

"1,2,3,4".split(',').map(&:to_i)  # => [1,2,3,4]

用逗号后面的空格,你将得到这个:

"1,2,3,4".split(', ').map(&:to_i)  # => [1]

答案 3 :(得分:-3)

您可以通过以下方法完成: - “1,2,3,4” .split(/,/)

这会给你以下结果: -

[“1”,“2”,“3”,“4”]

...谢谢