gpt4 book ai didi

Swift 字符串替换并获取新范围

转载 作者:可可西里 更新时间:2023-11-01 01:08:35 26 4
gpt4 key购买 nike

有没有更好的方法在字符串替换后检索范围?

这是当前版本:

let username = "apple"
msgString = "{{user}} has an apple"
guard let range = msgString.range(of: "{{user}}") else { return }
msgString.replaceSubrange(range, with username)
userRange = msgString.range(of: username)

有没有更好的方法获取用户名范围

最佳答案

我建议你创建一个类来做你多次做的事情

在这个类中,您可以使用替换方法获取 stringRange 和 newReplacedString :

class StringService {

/** create an object to access every method because this class provides you services */

static let shared = StringService()


/** Service classes should not be available for creating instances */

private init () {}


func replace(mySting: String ,by: String, with: String) -> (String,Range<String.Index>?) {

var newString = ""

if let range = myString.range(of:by) {

newString.replaceSubrange(range,with:with)

return (newString,range)

}esle{

return ("",nil)

}
}

用法:

let replacedString = StringService.shared.replace(mySting: "myString is",
by: "is",
with: "was").0

if let replacedStringRange = StringService.shared.replace(mySting: "myString is",
by: "is",
with: "was").1 {

}

如果你想使用本地库,你可以使用:

"myString is".replacingOccurrences(of: "is",
with: "was",
options: .literal,
range: nil)

关于Swift 字符串替换并获取新范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51492454/

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