如何使用location将Swift子字符串替换为不相等的子字符串?
无法使用模式的引用,因为文本在任何情况下都可能更改如何使用location将Swift子字符串替换为不相等的子字符串?,swift,string,swift4,Swift,String,Swift4,无法使用模式的引用,因为文本在任何情况下都可能更改 var originalString = "Hi there <un>" var stringToPut = "Some Amazing Name" // Change string between 10th index and 13th to the following. var requiredString = "Hi there <Some Amazing Name>" var originalString=“你
var originalString = "Hi there <un>"
var stringToPut = "Some Amazing Name"
// Change string between 10th index and 13th to the following.
var requiredString = "Hi there <Some Amazing Name>"
var originalString=“你好”
var stringToPut=“一些令人惊奇的名字”
//将第10个索引和第13个索引之间的字符串更改为以下内容。
var requiredString=“你好”
这对于仅1个字符或替换字符串的长度相同的情况非常容易。但是,当父字符串的长度发生变化并且无法进行精确的位置引用时,子字符串的长度不相等时会中断。希望这能起作用
let originalString = "Hi there <un>"
let subString = "Some Amazing Name"
let characters = Array(originalString)
let firstPart = characters[0..<9]
let lastPart = characters[13..<characters.count]
let finaString = ("\(String(firstPart))\(subString)\(String(lastPart))")
让originalString=“你好”
让subString=“某个令人惊奇的名字”
让字符=数组(原始字符串)
让firstPart=characters[0..或者您可以使用replaceSubrange
:
var originalString = "Hi there <un>"
var stringToPut = "Some Amazing Name"
// Change string between 10th index and 13th to the following.
var requiredString = "Hi there <Some Amazing Name>"
let startIndex = originalString.index(originalString.startIndex, offsetBy: 9)
let endIndex = originalString.index(originalString.startIndex, offsetBy: 12)
originalString.replaceSubrange(startIndex...endIndex, with: "Some Amazing Name") // "Hi there Some Amazing Name"
var originalString=“你好”
var stringToPut=“一些令人惊奇的名字”
//将第10个索引和第13个索引之间的字符串更改为以下内容。
var requiredString=“你好”
设startIndex=originalString.index(originalString.startIndex,偏移量:9)
让endIndex=originalString.index(originalString.startIndex,偏移量:12)
originalString.replaceSubrange(startIndex…endIndex,带:“一些令人惊奇的名字”)/“嗨,这里有一些令人惊奇的名字”
如果您知道
的格式,最简单的方法是:
let newString=originalString.replacingOccurrences(of:,with:stringToPut,options:.literal,range:nil)