【问题标题】:Remove U\0000fffc unicode scalar from string从字符串中删除 U\0000fffc unicode 标量
【发布时间】:2017-01-10 08:19:36
【问题描述】:

我收到一个包含NSTextAttachmentNSAttributedString。我想删除那个附件,看起来它在字符串中表示为"\u{ef}"。打印此类字符串的 unicode 标量,"\u{ef}" 的 unicode 标量似乎也是 U\0000fffc

我尝试过这样做:

noAttachmentsText = text.replacingOccurrences(of: "\u{ef}", with: "")

没有成功,所以我尝试比较 unicode 标量:

var scalars = Array(text.unicodeScalars)
for scalar in scalars {
   // compare `scalar` to `U\0000fffc`
}

但我无法在比较中取得成功。 我怎么能这样做?

【问题讨论】:

标签: ios swift string unicode nsattributedstring


【解决方案1】:

但这段代码适用于我来自How do I remove "\U0000fffc" from a string in Swift?

    let original = "First part \u{ef} Last part"
    let originalRange = Range<String.Index>(start: original.startIndex, end: original.endIndex)
    let target = original.stringByReplacingOccurrencesOfString("\u{ef}", withString: "", options: NSStringCompareOptions.LiteralSearch, range: originalRange)

    print(target)

输出:

“前半部分-后半部分”

前半部分后半部分

【讨论】:

  • 谢谢。是swift 3 吗?范围初始化似乎不起作用
【解决方案2】:

您可以为 swift 3 使用类似的代码,只需使用 replacingOccurrences 选项替换 unicode 即可:

func stringTocleanup(str: String) -> String {
        var result = str
        result = result.replacingOccurrences(of: "\"", with: "\"")
            .replacingOccurrences(of: "\u{10}", with: "")
        return result
}

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2019-05-30
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多