首页 > 解决方案 > 使用 Swift 从单个字符串中解析四个逗号分隔值

问题描述

我需要从单个字符串(例如“0.0100、2.0200、0.10、0.000”)中解析四个逗号分隔的 Double 类型值。字符串长度未知,没有特定的终止符,并且包含具有不同字符数的值。这在 C 语言中会很简单,但在 Swift 中并不完全流利,这让我非常不舒服。在 Swift 中是否有一种优雅的方法可以做到这一点?如果有,请举个例子。

标签: stringparsingswift5

解决方案


正如 Sweeper 和 rmaddy 提到的,这只是一行代码,你可以这样做:

let commaSeparatedString = "0.0100, 2.0200, 0.10, 0.000"
let doubleValuesArray = commaSeparatedString.components(separatedBy: ", ").map { Double($0) } // [Optional(0.01), Optional(2.02), Optional(0.1), Optional(0.0)]

它们是可选的,因为将字符串映射到双精度可能会失败。如果您希望您doubleValuesArray只包含非可选值,您可以使用compactMap代替map. 像这样:

let doubleValuesArray = commaSeparatedString.components(separatedBy: ", ").compactMap { Double($0) } // [0.01, 2.02, 0.1, 0.0]

推荐阅读