ios - 删除字符串范围内的字符

标签 ios iphone swift macos

我想编辑以下字符串:

var someString = "I wan't this text {something I don't want}"

我想删除两个大括号中包含的所有文本,无论该文本有多长。当我知道范围时,我一直在使用以下代码删除字符串的一部分:

extension String {
    mutating func deleteCharactersInRange(range: NSRange) {
        let mutableSelf = NSMutableString(string: self)
        mutableSelf.deleteCharactersInRange(range)
        self = mutableSelf
    }
}

但是,我不知道问题的范围。有什么想法吗?

最佳答案

NSStringNSRange 与 Swift 的 StringRange 混合使用时,使用字符串和范围可能会非常具有挑战性.

这是一个纯粹的 Swift 解决方案。

var someString = "I wan't this text {something I don't want}"

let rangeOpenCurl = someString.rangeOfString("{")
let rangeCloseCurl = someString.rangeOfString("}")
if let startLocation = rangeOpenCurl?.startIndex,
    let endLocation = rangeCloseCurl?.endIndex {
    someString.replaceRange(startLocation ..< endLocation, with: "")
}

关于ios - 删除字符串范围内的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484357/

相关文章:

ios - ios 中的 .dylib 和 .a lib 有什么区别?

iphone - Facebook 和 Twitter 与 iPhone 应用程序的集成无法在设备上运行

objective-c - MPMoviePlayerViewController 自定义

ios - SwiftUI:如何将核心数据对象传递给 View ?

ios - 在 swift 中使用 GPUImage 链接过滤器

ios - 在ios中绘制彩色三角形

c# - Iphone 应用程序集成开发环境

ios - 如何知道应用程序运行时iPhone的时钟是否改变?

Swift 3,制作计时器,添加到字典中,永不熄灭

ios - 使用 SharedData 在 iPhone 和 Watch 之间传递更新