当字符包含连字符Swift时,trimmingCharacters无法正常工作

时间:2017-06-17 05:03:41

标签: swift

尝试通过下一个示例了解游乐场出了什么问题:

let result = "+-----+".trimmingCharacters(in: CharacterSet(charactersIn: "+").inverted)

结果是“+ ----- +”

预期结果为“++”

由于方法引用“返回通过从给定字符集中包含的String字符的两端删除而生成的新字符串。”

符合我预期效果的例子:

let result = "D123ABC".trimmingCharacters(in: CharacterSet(charactersIn: "01234567890.").inverted)

结果是“123”

let result = "+-----+".trimmingCharacters(in: CharacterSet(charactersIn: "*").inverted)

结果是“”

2 个答案:

答案 0 :(得分:2)

trimmingCharacters仅替换尾随/前导字符。

如果您要替换所有不是"+"的字符,您可以使用

"+-----+".replacingOccurrences(of: "[^+]", with: "", options: .regularExpression)

答案 1 :(得分:0)

同意rmaddy。 有关更多说明,请查看:

let result = "123+--+abc".trimmingCharacters(in: CharacterSet(charactersIn: "+").inverted)

结果:+ - +

let result = "+--+".trimmingCharacters(in: CharacterSet(charactersIn: "+").inverted)

结果:+ - +