将Swift 5.0中的字符串对象解包为[(Double,Double)]

时间:2019-10-18 00:51:50

标签: swift

尝试在Swift 5.0中将字符串强制转换为[(Double,Double)]

let test: String = "[(0.0,1.0),(0.0,2.0)]"
let out: [(Double, Double)] = test as! [(Double, Double)]

1 个答案:

答案 0 :(得分:1)

快速而又肮脏的解决方案(现在是凌晨3:30:-))

let test: String = "[(0.0,1.0),(0.0,2.0)]"

let filtered = test.components(separatedBy: CharacterSet(charactersIn: "[](),")).filter{$0 != ""}
var output = [(Double, Double)]()
var i = 0
while i < filtered.count - 1 {
   if let a = Double(filtered[i]), let b = Double(filtered[i+1]){
      output.append((a,b))
   }
   i += 2
}