繁体   English   中英

在Ruby中将字符串拆分为数组

[英]Split string looking as array to array in Ruby

我有字符串["10000", "10001"] (请不要问为什么它是字符串,我正在纠正一个家伙之后的错误...),现在我遇到了将每个数字拆分为单独项目的问题,例如我想使用类似[10000, 10001]数组,但是编写适当的RegExp时遇到了很大的问题。 现在我正在这样做:

items.gsub(/[^\d]/, '').scan(/./).each do |collection_id|
  my code here
end

可以使用1位数的ID,但不能使用多:-(.。能帮我吗?

string = '["10000", "10001"]'
string.scan(/\d+/).map(&:to_i)
# => [10000, 10001] 

说明

.scan(/d+/)方法返回一个仅包含数字的所有字符块的数组:

string.scan(/\d+/)
# => ["10000", "10001"]

.map(&:to_i)在结果数组中的每个元素上执行方法.to_i ,并根据结果创建一个新数组。

这是我使用YAML尝试:

2.1.0 :001 > string = '["10000", "10001"]'
 => "[\"10000\", \"10001\"]" 
2.1.0 :002 > require 'yaml'
 => true 
2.1.0 :003 > YAML.load(string).map(&:to_i)
 => [10000, 10001] 

您可以尝试以下方法:

"[\"10000\", \"10001\"]".gsub(/\[|\]|"/, '').split(",").map{ |s| s.to_i }

它:
1)用空字符串替换字符[,]和“。
2)在逗号上分割结果字符串
3)将字符串映射为整数并返回结果数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM