在NSCharacterSet中添加新行

时间:2016-01-26 20:17:01

标签: swift

我想删除所有新行和逗号的字符串(并将其放入数组中),所以我创建了这个:

let results = text.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: ",\n"))

但是,我的数组中仍然存在换行符(正在删除逗号)。将新行添加到NSCharacterSet的正确方法是什么?或者,如何将逗号添加到NSCharacterSet.newLineCharacterSet。

感谢。

这是一个很好的解决方案,但仍然在寻找一个更优雅的解决方案。

var results = text.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: ","))
text = results.joinWithSeparator(" ")
results = text.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

(单行)解决方案:

var results = text.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: " ,\u{000A}\u{000B}\u{000C}\u{000D}\u{0085}"))

说明如下。

2 个答案:

答案 0 :(得分:5)

您可以先使用NSMutableCharacterSet统一两个NSCharacterSet,例如:

let charset = NSMutableCharacterSet(charactersInString: ",")
charset.formUnionWithCharacterSet(NSCharacterSet.newlineCharacterSet())

let results = text.componentsSeparatedByCharactersInSet(charset)

答案 1 :(得分:0)

所以MartinR引起了我的注意,有更多的换行而不仅仅是“\ n”。

我查看了NSCharacterSet.newlineCharacterSet中使用的值并将它们全部添加,给了我:

var results = text.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: " ,\u{000A}\u{000B}\u{000C}\u{000D}\u{0085}"))

这摆脱了所有的空白,逗号和新行。有趣的是 - 当我分别使用所有换行值时,看看我是否可以找出在我的情况下使用的换行符,但没有一个有效。但是当它们一起使用时,它会删除我的新行。