Swift:使用CharacterSet.whitespacesAndNewlines移除空白字符编译报错求解决方案
解决方法
你写的代码编译失败,是因为replacingOccurrences(of:with:)方法要求第一个参数必须符合StringProtocol(比如String类型),但CharacterSet并不满足这个要求,所以报错。
下面是两种简单实现移除所有空白和换行字符的方法:
方法一:使用components(separatedBy:) + joined()
这是最直观的写法,利用字符集分割字符串后重新拼接:
let cleanedString = myString.components(separatedBy: .whitespacesAndNewlines).joined()
原理:components(separatedBy:)会把原字符串中所有属于whitespacesAndNewlines的字符作为分隔符,将字符串拆分成不含空白的子字符串数组,再通过joined()把数组元素无缝拼接成新字符串。
方法二:使用正则表达式替换
利用正则匹配所有空白类字符,直接替换为空:
let cleanedString = myString.replacingOccurrences(of: "\\s", with: "", options: .regularExpression)
原理:正则表达式\\s会匹配所有空白类字符(包括空格、换行、制表符等),通过.regularExpression选项告诉方法按正则规则匹配替换。
内容的提问来源于stack exchange,提问作者Ilias Karim
相关产品推荐
相关产品推荐

