gpt4 book ai didi

ios - 在 Swift 2 中使用多字符字符串拆分 Swift 字符串

转载 作者:行者123 更新时间:2023-11-28 10:20:37 27 4
gpt4 key购买 nike

我知道我可以回退到 NSString 函数 componentsSeparatedByString,所以也许这是一个吹毛求疵的问题,但我喜欢 Swift 的其中一个原因是它是围绕简洁和短语法设计。

我真的希望我可以:var parts = myString.characters.split("${") 但该函数仅适用于单个字符,不适用于两个字符的字符串。我什至尝试过 var parts = myString.characters.split { $0 == "${"} 但这是期望单个字符作为分隔符而不是完整的字符串。 :(

是否有我缺少的 api 函数,或者我是否需要坚持使用旧的 NSString 桥接函数?

最佳答案

这里有一个相当简单的方法,可以在单个字符上使用 Swift split:

extension String {
mutating func replace(target:String, with:String) {
while let r = self.rangeOfString(target) {
self.replaceRange(r, with: with)
}
}
func split(separator:String) -> Array<String> {
var s = self
s.replace(separator, with:"☞") // arbitrary improbable character :)
return s.characters.split("☞").map{String($0)}
}
}

var s = "the${cat${sat${on${the${mat"
let arr = s.split("${")

但是,rangeOfString 实际上是NSString 上的一个Foundation 方法;如果您不导入 Foundation(或 UIKit),该代码将无法编译。所以实际上它并没有比仅仅调用 componentsSeparatedByString 有任何改进。我一开始并不真正理解你的反对意见; Swift 之所以存在漏洞,正是因为它期望 Foundation 支持它并填补这些漏洞。

关于ios - 在 Swift 2 中使用多字符字符串拆分 Swift 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35640294/

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