簡體   English   中英

將字符串 arra 轉換為整數數組

[英]Convert string arra into array of integers

我收到這樣的參數"[[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

這是一種有趣的方式(請注意,它僅在您的參數是數組字符串的情況下才有效)

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)

如果您的字符串中有深層嵌套的“數組”,則取決於您想要接收的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM