如何知道哪个CharacterSet包含给定字符?

时间:2019-01-25 16:42:54

标签: swift unicode nscharacterset

是否可以检查字符是否属于CharacterSet

我想知道CharacterSet应该用什么-字符。我是否使用symbols

我检查了此文档,但仍然不知道。 https://developer.apple.com/documentation/foundation/characterset

当删除字符串末尾多余的空格时,我们这样做:

let someString = " "
print("\(11111) - \(someString)".trimmingCharacters(in: .whitespaces))

但是,如果我只想删除-,该怎么办?还是任何特殊字符,例如*

编辑:如果可能,我正在为每个CharacterSet寻找一组完整的字符。

1 个答案:

答案 0 :(得分:4)

所需的内容在Unicode标准中定义。它被称为Unicode常规类别。每个Unicode字符都在一个类别中。

Unicode网站提供了complete character list,其中显示了字符的代码,类别和名称。您还可以找到Unicode categories的完整列表。

-是U + 2D(连字符减)。它被列为“ Pd”(标点)类别。

如果您查看CharacterSet的文档,则会看到punctuationCharacters,其记录为:

  

返回一个字符集,其中包含Unicode通用类别P *中的字符。

“ P *”类别中包含“ Pd”类别(表示任何“ P”类别)。

我还发现https://www.compart.com/en/unicode/category是按类别列出每个字符的第三方列表。比Unicode参考更加用户友好。

总结。如果您想知道给定字符要使用哪个CharacterSet,请使用我链接的图表之一查找字符的类别。知道其类别后,请查看CharacterSet的文档,以了解适用于该类别的预定义字符集。