将多个stringByReplacingOccurrencesOfString合并为一个

时间:2015-11-18 21:36:13

标签: ios swift

我必须在多个案例中使用arithmetic on pointer to an incomplete type,我想知道是否有更好的方法将下面的代码写入可能的单行?

func

3 个答案:

答案 0 :(得分:2)

撰写扩展程序。

extension String
{
    public mutating func replace(substrings: [String], with other: String)
    {
        substrings.forEach({ self = stringByReplacingOccurrencesOfString($0, withString: other) })
    }
}

答案 1 :(得分:2)

一种可能的方式:

undefined

答案 2 :(得分:1)

让Foundation使用字符集优化多个搜索/替换操作可能更有效。 (您也可以使用正则表达式进行单个搜索/替换操作,但如果您需要替换的只是单个字符,则字符集可能会带来更好的性能 - 通常,您可以更具体地向API陈述问题,它可以提供更好的解决方案。)

extension String {
    func stringByStrippingCharactersInSet(set: NSCharacterSet) -> String {
        return self.componentsSeparatedByCharactersInSet(chars).joinWithSeparator("")
    }
    mutating func stripCharactersInSet(set: NSCharacterSet) {
        self = self.stringByStrippingCharactersInSet(set)
    }
}

奇怪的是,Foundation可以从字符串的开头/结尾修剪字符集,但不能从字符串中删除。它可以通过charset分割字符串,所以你要做的就是将它与一个空的分隔符拼接在一起。当然,为方便起见,您可以将其包装在您自己的扩展中:

{{1}}