Swift String Extension 替换第一个字符而不出现

Str*_* B. 2 string ios swift

我想替换字符串中的一个字符,但只替换该字符的第一次出现。

我正在使用这个字符串扩展名!但它正在取代所有的出现

extension String {

    func replace(target: String, withString: String) -> String
    {
        return self.stringByReplacingOccurrencesOfString(target, withString: withString, options: NSStringCompareOptions.LiteralSearch, range: nil)
    }


} 
Run Code Online (Sandbox Code Playgroud)

sha*_*oga 5

你必须指定范围,这样你只能找到第一个

var str = "Hello, playground"
var strnigToReplace = "l"
var stringToReplaceTO = "d"

if let range =  str.rangeOfString(strnigToReplace) {
    str = str.stringByReplacingOccurrencesOfString(strnigToReplace, withString: stringToReplaceTO, options: NSStringCompareOptions.LiteralSearch, range: range)
}
Run Code Online (Sandbox Code Playgroud)

这将找到该字符的第一次出现,并将替换限制在该字符串的范围内。希望能帮助到你