首页 > 解决方案 > 将 Swift 5.0 中的字符串对象展开为 [(Double, Double)]

问题描述

试图在 swift 5.0 中将字符串转换为 [(Double, Double)]

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

标签: swift

解决方案


快速而肮脏的解决方案(现在是凌晨 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
}

推荐阅读