gpt4 book ai didi

swift - 使用通用正则表达式将字符串拆分为数组

转载 作者:行者123 更新时间:2023-11-28 10:29:05 25 4
gpt4 key购买 nike

在 Swift 中我有一个像这样的字符串:

let str = "5~895893799,,6~898593679,,7~895893679,,8~895893799,,5~895893799,,6~898593679,,7~895893679,,8~895893799";

由此我只需要得到“~”之前的数字,即 [5,6,7,8,5,6,7,8]

我怎样才能做到这一点?

最佳答案

利用 components(separatedBy:)compactMap

let str = "5~895893799,,6~898593679,,7~895893679,,8~895893799,,5~895893799,,6~898593679,,7~895893679,,8~895893799"
let nums = str.components(separatedBy: ",,")
.compactMap { $0.components(separatedBy: "~").first }

这给出了字符串数组:

["5", "6", "7", "8", "5", "6", "7", "8"]

如果你想要一个 Int 数组,添加:

.compactMap { Int($0) }

到最后。

let nums = str.components(separatedBy: ",,")
.compactMap { $0.components(separatedBy: "~").first }
.compactMap { Int($0) }

这给出了:

[5, 6, 7, 8, 5, 6, 7, 8]

关于swift - 使用通用正则表达式将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57128973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com