我收到這樣的引數"[[201], [511], [3451]]",我想把它轉換成[201, 511, 3451]
uj5u.com熱心網友回復:
假設params是您收到的內容,您可以使用 scan 和 map 來使用正則運算式,查找回應中的數字,然后將陣列中的每個專案映射到一個整數:
params = "[[201], [511], [3451]]"
params_array = params.scan(/\d /).map(&:to_i)
我們在這里所做的是我們正在查看字串并使用Scan方法只選擇數字,然后我們得到一個字串陣列,以便我們使用Map方法將其轉換為整數。根據地圖方法,感謝Cary Swoveland 對其進行更新。
uj5u.com熱心網友回復:
它會幫助你!
str_arr = "[[201], [511], [3451]]"
JSON.parse(str_arr).flatten
or
eval(str_arr).flatten
uj5u.com熱心網友回復:
這是一種有趣的方式(請注意,它僅在您的引數是陣列字串的情況下才有效)
arr1 = instance_eval("[1,2,3]")
puts arr1.inspect # [1,2,3]
arr2 = instance_eval("[[201], [511], [3451]]")
puts arr2.inspect # [[201], [511], [3451]]
uj5u.com熱心網友回復:
首先,我會進行健全性檢查,確保您沒有注入惡意代碼:
raise "Can not convert #{params}" if /[^\[\]\d]/ =~ params
現在您可以斷言您的字串是安全的:
params.untaint
然后轉換
arr = eval(params).flatten
或者
arr = eval(params).flatten(1)
如果您的字串中有深層嵌套的“陣列”,則取決于您想要接收的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330627.html
上一篇:如何使用cPanel和EasyApache4設定自定義Ruby版本
下一篇:沒有這樣的檔案或目錄:'Tensorflow/workspace/annotations\\label_map.pbtxtonJupyter為什么我的代碼不起作用?
