swift - 使用 for 循环从具有多个浮点值的字符串中删除非数字字符
问题描述
我有一个字符串,在列表中包含字符和浮点值,例如 let string = "12.1gh34.5abc32.1"。我想从字符串中删除字符,结果将显示在带有浮点值的数组中。有什么解决办法吗?
解决方案
使用字母作为分隔符拆分字符串。从结果中删除空字符串。将剩余的数字字符串映射为实数。
let string = "12.1gh34.5abc32.1"
let numbers = string.components(separatedBy: .letters)
.filter { !$0.isEmpty }
.compactMap { Double($0) }
输出是:
[12.1、34.5、32.1]
如果你想处理任何不是十进制数字或逗号的东西,你可以替换.letters
为:
CharacterSet(charactersIn: "0123456789.").inverted
推荐阅读
- scala - value - 不是类型参数 T | 的成员 斯卡拉错误
- python - 在 Python 中获取相对导入的问题
- python - 根据值的趋势过滤熊猫行
- laravel - 来自其他关系的 Laravel 资源调用关系
- python - Pip install --upgrade 导致意外版本
- amazon-web-services - AWS t2.micro 上的 Neo4J
- javascript - 使用反应显示服务器响应
- excel - Excel 如何使选项卡 2 中的单元格仅在选项卡 1 的下拉单元格中的某个值被选中时才显示选项卡 3 中单元格的值
- nginx - NGINX 回退到 502 和 503 上的替代上游
- react-native - 如何使用反应原生画布?