NSCharacterSet,nscharacterset詳解
NSCharacterSet
對於string處理,在IOS生態系統中經常用到且用錯的重要組成部分:NSCharacterSet
。下面詳解一下:
NSCharacterSet
,以及它的可變版本NSMutableCharacterSet
,用物件導向的方式來表示一組Unicode字元。它經常與NSString
及NSScanner
組合起來使用,在不同的字元上做過濾、刪除或者分割操作。為了給你提供這些字元是哪些字元的直觀印象,請看看NSCharacterSet
提供的類方法:
1 alphanumericCharacterSet //所有數字和字母(大小寫) 2 3 capitalizedLetterCharacterSet //大寫 4 5 controlCharacterSet //控制符 6 7 decimalDigitCharacterSet //0-9的數字 8 9 decomposableCharacterSet //可分解10 11 illegalCharacterSet //非法12 13 letterCharacterSet //所有字母 14 15 lowercaseLetterCharacterSet //小寫字母16 17 newlineCharacterSet //分行符號18 19 nonBaseCharacterSet //非基礎 20 21 punctuationCharacterSet //標點符號22 23 symbolCharacterSet //符號24 25 uppercaseLetterCharacterSet //大寫字母26 27 whitespaceAndNewlineCharacterSet //空格和分行符號28 29 whitespaceCharacterSet //空格
View Code
與它的名字所表述的相反,NSCharacterSet
跟 NSSet
一點關係都沒有。
雖然底層實現不太一樣,但是 NSCharacterSet
在概念上跟 NSIndexSet
還有點相似的。NSIndexSet
,之前提到過,表示一個有序的不重複的不帶正負號的整數的集合。Unicode字元跟不帶正負號的整數類似,大致對應一些拼字表示。所以,一個 NSCharacterSet +lowercaseCharacterSet
字元集與一個包含97到122範圍的 NSIndexSet
是等價的。
去掉空格
NSString -stringByTrimmingCharactersInSet:
這個你需要牢牢記住的方法。它經常會傳入:
NSCharacterSet +whitespaceCharacterSet (或 +whitespaceAndNewlineCharacterSet )
來刪除輸入字串的頭尾的空白符號。
需要重點注意的是,這個方法 僅僅 去除了 開頭 和 結尾 的指定字元集中連續字元。這就是說,如果你想去除單詞之間的額外空格,請看下一步。