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



我正在接收这样的参数"[[201], [511], [3451]]",我想将其转换为[201, 511, 3451]

让我们说params是你收到的,你可以使用scan和map来使用正则表达式,查找响应中的数字,然后将数组中的每个项映射为整数:

params = "[[201], [511], [3451]]"
params_array = params.scan(/d+/).map(&:to_i)

我们在这里所做的是通过Scan方法查找字符串并只选择数字,然后我们得到一个字符串数组,因此我们使用Map方法将其转换为整数。根据地图方法,感谢Cary Swoveland对它的更新。

会帮到你的!

str_arr = "[[201], [511], [3451]]"
JSON.parse(str_arr).flatten
or
eval(str_arr).flatten

这里有一种有趣的方法(注意,它只在params是数组字符串的情况下起作用)

arr1 = instance_eval("[1,2,3]")
puts arr1.inspect # [1,2,3]
arr2 = instance_eval("[[201], [511], [3451]]")
puts arr2.inspect # [[201], [511], [3451]]

首先,我会做一个完整性检查,以确保您不会被恶意代码注入:

raise "Can not convert #{params}" if /[^[]d]/ =~ params

现在你可以断言你的字符串是安全的:

params.untaint

,然后转换

arr = eval(params).flatten

arr = eval(params).flatten(1)

取决于你想接收什么如果你有深嵌套的"数组">

相关内容

  • 没有找到相关文章

最新更新