我正在尝试将以下格式的字符串转换为 Swift 3 中的数组(...数组, float !):
"[173.0, 180.5],[173.0, 180.0],[174.0, 180.5],[174.0, 183.0]"
因此输出将是这种格式的数组:
[[173.0, 180.5, 173.0, 180.0],[174.0, 180.5, 174.0, 183.0]]
我真的是 Swift 的新手,正在努力寻找任何允许我以这种方式转换数据的字符串函数。任何关于我如何做的指示都会很棒 - 谢谢!
最佳答案
正如 Martin 所说,您首先要将其从字符串转换为数组。在 Swift 3 中:
let string = "[173.0, 180.5],[173.0, 180.0],[174.0, 180.5],[174.0, 183.0]"
let jsonString = "[" + string + "]"
guard let data = jsonString.data(using: .utf8),
let json = try? JSONSerialization.jsonObject(with: data),
let numberPairs = json as? [[Double]] else {
fatalError("string was not well-formed: \(string)")
}
然后您想要将这些数字对组合在一起:
var combinedNumbers = [[Double]]()
var current: [Double]?
for numberPair in numberPairs {
if current != nil {
combinedNumbers.append(current! + numberPair)
current = nil
} else {
current = numberPair
}
}
// use `combinedNumbers` here
显然,您应该使用更好的变量名(也许可以暗示这些数字集是什么),但希望这能说明这个想法。
关于arrays - 在 Swift 3 中将字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149375/