Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 使用Swift从单个字符串解析四个逗号分隔的值_String_Parsing_Swift5 - Fatal编程技术网

String 使用Swift从单个字符串解析四个逗号分隔的值

String 使用Swift从单个字符串解析四个逗号分隔的值,string,parsing,swift5,String,Parsing,Swift5,我需要从一个字符串(例如“0.0100,2.0200,0.10,0.000”)中解析四个逗号分隔的双精度值。字符串长度未知,没有特定的终止符,并且包含具有不同字符数的值。这在C语言中非常简单,但在Swift中却不太流利,这让我非常不舒服。 在Swift中有没有一种优雅的方法可以做到这一点?如果是这样,请给出一个例子。正如Sweeper和rmaddy提到的,这只是一行代码,您可以这样做: let commaSeparatedString = "0.0100, 2.0200, 0.10, 0.000

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

正如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)]
它们是可选的,因为将字符串映射到double可能会失败。如果希望
doubleValuesArray
仅包含非可选值,可以使用
compactMap
而不是
map
。像这样:

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

。组件(以“,”分隔)
?首先,然后。完成后只需要一行代码。哇!我不知道会有像commaSeparatedString.components()这样简单而强大的东西。在哪里可以找到像这样功能强大的方法/函数的API文档?