【问题标题】:Parsing four comma separated values from a single string with Swift使用 Swift 从单个字符串中解析四个逗号分隔值
【发布时间】:2020-01-08 18:35:56
【问题描述】:

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

【问题讨论】:

标签: string parsing swift5


【解决方案1】:

正如 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]

【讨论】:

  • 哇!我不知道会有像 commaSeparatedString.components() 这样简单而强大的东西。在哪里可以找到此类强大方法/功能的 API 文档?
猜你喜欢
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 2011-02-20
  • 1970-01-01
  • 2013-05-31
  • 2019-12-04
  • 1970-01-01
相关资源
最近更新 更多