Есть ли простой способ преобразования строки, которая выглядит так: [[1,2], [1,3], [1,4]] для массива с массивами?Преобразовать строку array.description в Array
Буду рад.
Есть ли простой способ преобразования строки, которая выглядит так: [[1,2], [1,3], [1,4]] для массива с массивами?Преобразовать строку array.description в Array
Буду рад.
Я сделал этот метод для него, и он работает:
func convertToArray(string: String) -> [[Int]] {
var arrayOrder = 0
var mainArray: [[Int]] = []
var array: [Int] = []
for character in string.characters {
if character == "[" {
arrayOrder += 1
}
if arrayOrder >= 2 && character != "[" && character != "]" && character != "," {
let integer: Int = Int(String(character))!
array.append(integer)
}
if character == "]" {
if arrayOrder >= 2 {
mainArray.append(array)
array = []
}
arrayOrder -= 1
}
}
return mainArray
}
Это только если у нас есть один уровень массивов в основном массиве. – Dzeremix
Самый простой вариант, чтобы преобразовать его в формат JSON и обратно:
let str = "[[1,2],[1,3],[1,4]]"
let data = str.data(using: .utf8)!
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
if let arr = json as? [[Int]] {
print(arr)
}
} catch {
print(error)
}
Это не похоже описанием * словарь . * Как вы получили строку? - Лучше выбрать формат JSON, если вам нужно преобразовать словари/массивы в строку и обратно. –
Извините за ошибку, я подумал о Array ... – Dzeremix
Возможный дубликат http://stackoverflow.com/questions/37391290/convert-string-array-representation-of-integers-into-array-of-integers-in- swift – Moritz