在我的应用中,我有一个文本字段,用户可以在其中输入类似的内容
"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"]
答案 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”]
...谢谢