swift - 将 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)]
解决方案
快速而肮脏的解决方案(现在是凌晨 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
}
推荐阅读
- r - 三组散点图中的平均值±SE
- javascript - 等到所有 Observables 完成
- c++ - 如何在没有中间限制的情况下定义与 STL 兼容的输入迭代器?
- python - “ValuesViewHDF5”对象不可下标
- apache-kafka - 如何将单消息转换与 Kafka Connect JDBC 源连接器和多个表一起使用?
- solaris - 如何从 linux/windows 为目标 Solaris 64bit SPARC 编译 c/cpp 代码
- c# - 当检测到某些类型的引用刚刚添加到项目中时可以警告开发人员的 Visual Studio 插件?
- arduino - Arduino Leonardo 作为游戏手柄
- ios - Iphone 5/SE CSS 媒体查询更改也适用于 Iphone 6/7/8 分辨率
- c++ - 为什么 std::make_unique 调用复制构造函数