我正在寻找一种方法来替换Swift中的字符String.
例: "This is my string"
我想,以取代 with +获得: "This+is+my+string".
我怎样才能做到这一点?
我有一个方法来检测字符串中的网址,并返回网址和可以找到它们的范围.一切都很完美,直到字符串上有表情符号.例如:
"I'm gonna do this callenge as soon as I can swing again \n http://youtu.be/SW_d3fGz1hk"
Run Code Online (Sandbox Code Playgroud)
由于表情符号,从文本中提取的URL是http://youtu.be/SW_d3fGz1而不是http://youtu.be/SW_d3fGz1hk.我认为最简单的解决方案是用空格字符替换字符串上的表情符号(因为我需要范围对于某些文本样式的东西是正确的).问题是,使用Swift非常难以实现(很可能我的Swift String API缺乏能力).
我一直试图这样做,但似乎我无法从unicode点数组创建一个字符串:
var emojilessStringWithSubstitution: String {
let emojiRanges = [0x1F601...0x1F64F, 0x2702...0x27B0]
let emojiSet = Set(emojiRanges.flatten())
let codePoints: [UnicodeScalar] = self.unicodeScalars.map {
if emojiSet.contains(Int($0.value)) {
return UnicodeScalar(32)
}
return $0
}
return String(codePoints)
}
Run Code Online (Sandbox Code Playgroud)
我是否以错误的方式处理这个问题?取代表情符号是最好的解决方案吗?如果是这样,我该怎么办?