["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"]
我得到這個作爲輸出如何獲得字符串數組像這樣的斯威夫特如何在swift中獲得正確的字符串數組?
["1", "7", "13", "19", "25", "6", "12", "13"]
我嘗試了所有這個數組轉換在適當的數組,但沒有運氣。有沒有解決方案?
謝謝!
["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"]
我得到這個作爲輸出如何獲得字符串數組像這樣的斯威夫特如何在swift中獲得正確的字符串數組?
["1", "7", "13", "19", "25", "6", "12", "13"]
我嘗試了所有這個數組轉換在適當的數組,但沒有運氣。有沒有解決方案?
謝謝!
簡單的解決方案(沒有顯著錯誤處理),該字符串可以被視爲JSON
let array = ["[\"1\", \"7\", \"13\", \"19\", \"25\"]", "[\"6\", \"12\", \"13\"]"]
var result = [String]()
for item in array {
let jsonArray = try! JSONSerialization.jsonObject(with: item.data(using: .utf8)!) as! [String]
result.append(contentsOf: jsonArray)
}
print(result)
工作兄弟@vadian謝謝! –
或'let result = array.flatMap {try! JSONSerialization.jsonObject(使用:$ 0.data(使用:.utf8)!)as! [String]}' – Rob
首先,假設你有陣列的簡單的數組,可以用flatMap
弄平:
let input = [["1", "7", "13", "19", "25"], ["6", "12", "13"]]
let output = input.flatMap { $0 }
輸出
[ 「1」, 「7」, 「13」, 「19」, 「25」, 「6」, 「12」, 「13」]
或者,更簡單,只是追加第二個數組的第一個,完全繞過數組的數組:
let array1 = ["1", "7", "13", "19", "25"]
let array2 = ["6", "12", "13"]
let output = array1 + array2
但你的例子看起來像它不是一個數組的數組,而是數組數組的描述,例如是這樣的:
let array1 = ["1", "7", "13", "19", "25"]
let array2 = ["6", "12", "13"]
let input = ["\(array1)", "\(array2)"]
let output = ... // this is so complicated, I wouldn't bother trying it
不是搞清楚如何扭轉這種陣列插值字符串,我建議你重新考慮你如何建立的是,繞過插字符串(或陣列description
)。
感謝兄弟,但我得到了答案。謝謝你的時間! –
你想要什麼沙發? –
@Pratik Sanap在追加到數組之前,您需要刪除或替換「\」的出現。 –
編輯您的問題以包含您用於創建陣列的代碼。 –