NSCharacterSet译

链接

NSCharacterSet

NSCharacterSet对象代表一组固定的Unicode字符值,CharacterSet桥接于它。当你需要引用语义或者其它特定Foundation行为时可以使用NSCharacterSet

概况

NSCharacterSet对象代表一组兼容Unicode的字符。NSStringNSScanner对象使用它给搜索操作分组字符,以便于可以发现搜索中的特定字符集合。有两个公共类簇(cluster),NSCharacterSetNSMutableCharacterSet,分别给静态动态字符集声名正式接口。

你使用这些类创建的对象被称为字符集对象,当不会卖到混乱时,也仅仅做为字符集。因为类簇的本质,字符集对象不能是实际的NSCharacterSetNSMutableCharacterSet类的实例,而是它们私有子类的实例。虽然字符集对象类是私有的,但它们的接口是公有的,是在其抽象类NSCharacterSetNSMutableCharacterSet中声名的。字符集类遵守了NSCopyingNSMutableCopying协议,使得它们可以很方便的转换成其它字符集类型。

NSCharacterSet类声名了特定接口,用来可以管理Unicode字符集(可参见NSString类簇Unicode信息说明)。最主要最原始的方法——characterIsMember(:),为其它实例提供了基础。它的子类为具有特定行为仅仅需要实现这个方法,外加mutableCopy(with:)。如果有更佳的性能,可以重写bitmapRepresentation方法,否则它会为每个可以的Unicode值调用characterIsMember(:)*方法。

NSCharacterSet可以说是免税桥接的Core Foundation中的CFCharacterSet。参见Toll-Free Bridging

API

得到标准字符集

alphanumerics 类方法 (字符)
一个包含Unicode全部类型 L星, M星 和 N星的字符集。
capitalizedLetters 类方法 (大写)
包含Unicode所有Lt的字符集

controlCharacters 类方法
包含Unicode所有Cc 和 Cf的字符集

decimalDigits
所有Decimal Numbers(小数数字)的字符集

decomposables (可分解的)
包含的这些字符都是由字符序列组成的

illegalCharacters (非法的)
包含了非字符或者还没定义到Unicode标准中的字符

letters (字母)
包含了所有的L星和M星

lowercaseLetters (小写字母)
包含了所有LI字符

newlines
包含了所有换行符(U+000A ~ U+000D, U+0085, U+2028, and U+2029)。

nonBaseCharacters
包含所有的M*类型字符

punctuationCharacters (标点)
包含所有P星类型字符

symbols (符号)
包含所有S星类型字符

uppercaseLetters (大写字母)
包含所有Lu、Lt类型字符

whitespacesAndNewlines (空白和换行)
包含所有Z星类型字符和U+000A ~ U+000D, U+0085

whitespaces
包含所有Zs和 CHARACTER TABULATION (U+0009)

得到URL编码字符集

urlFragmentAllowed
组成URL的各个片段

urlHostAllowed
组成host URL的片段

urlPasswordAllowed
URL密码的片段

urlPathAllowed
path URL的片段

urlQueryAllowed
query URL的片段

urlUserAllowed
userURL片段

创建自定义的字符集

init(coder: NSCoder)
init(charactersIn: String)
init(range: NSRange)

使用BitmapRepresentations创建和管理字符集

init(bitmapRepresentation: Data)
init?(contentsOfFile: String)
var bitmapRepresentation: Data

字符集的补集

var inverted: CharacterSet

测试集合成员

func characterIsMember(unichar) -> Bool
表示一个字符是否包含在字符集内

func hasMemberInPlane(UInt8) -> Bool
这里涉及到Basic Multilingual Plane ( Unicode平面映射)的东西,表示是否包含某plan的成员

func isSuperset(of: CharacterSet) -> Bool
表示是否为某集合的超集

func longCharacterIsMember(UTF32Char) -> Bool
表示是否包含一个长字符,此方法支持32位字符规范

NSMutableCharacterSet

NSCharacterSet的基础上加了一些内容

添加和移除字符

func addCharacter(in: NSRange)
将range范围内的Unicode添加到接收者

func removeCharacters(in: NSRange)
将range范围内的Unicode移除出接收者

func addCharacters(in: String)
将字符串中的字符添加到接收者

func removeCharacters(in: String)
将字符串中的字符移除出接收者

合并字符集

func fromIntersection(with: CharacterSet)
修改接收者的内容,使集合为两个集合的交集

func formUnion(with: CharacterSet)
修改接收者内容,全集合为两个集合的并集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342