是否可以更改 NSString 特定部分内的文本?例如,我想使用 stringByReplacingOccurrencesOfString
,但仅限于字符串的特定部分。在此示例中,我只想替换 #q=
之后和 &lang=en-us
之前的 #
。像这样:
初始字符串:https://google.com/search#q=hello#&lang=en-us
应替换为:https://google.com/search#q=hello%23&lang=en-us
如果我告诉它用 %23
替换 #
,使用 stringByReplacingOccurrencesOfString
会返回什么:https://google. com/search%23q=hello%23&lang=en-us
感谢您的帮助!
最佳答案
你的问题的直接答案是肯定的,你可以使用stringByReplacingOccurrencesOfString:withString:options:range:
; range
参数指定应在其中进行替换的字符串部分。
NSString
提供了其他搜索方法,可以帮助您确定合适的 range
值。
话虽如此,您的方法可能相当“脆弱” - 当输入数据发生变化时很容易破坏 - 也许您应该将字符串视为它的本质,一个 URL,并且要么在第一个中使用适当的转义来构造它地方;或者将其解析为各个部分,添加转义,然后重新组装。 NSURL
和 NSString
上有一些方法可以帮助您做到这一点。
HTH
关于objective-c - 替换 NSString 特定部分内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670240/