Swift 3:stringByReplacingCharactersInRange替代品

use*_*482 1 string objective-c range swift swift3

你们中的任何人都知道stringByReplacingCharactersInRange要在Swift 3中使用吗?

我正在尝试将其转换Objective-CSwift:

strToSort = [strToSort stringByReplacingCharactersInRange:NSMakeRange((i-1),1) withString: [strToSort substringWithRange:NSMakeRange((i),1)]];
Run Code Online (Sandbox Code Playgroud)

我真的很感谢你的帮助.

Nir*_*v D 7

在Swift 3中它是.

strToSort = strToSort.replacingCharacters(in: range, with: str)
Run Code Online (Sandbox Code Playgroud)

注意:这里的范围是Swift Range<String.Index>对象的类型而不是NSRange.

有关Range检查Apple文档的更多详细信息.

例如:

let str = "Apple"
let i = 3
let range = str.index(str.startIndex, offsetBy: i-1)..<str.index(str.startIndex, offsetBy: i)
let subStringRange = str.index(str.startIndex, offsetBy: i)..<str.index(str.startIndex, offsetBy: i+1)
print(str.replacingCharacters(in: range, with: str.substring(with: subStringRange)))
Run Code Online (Sandbox Code Playgroud)

输出:

Aplle
Run Code Online (Sandbox Code Playgroud)