NSCharacterSet 對於string處理,在IOS生態系統中經常用到且用錯的重要組成部分:NSCharacterSet。下麵詳解一下: NSCharacterSet ,以及它的可變版本NSMutableCharacterSet,用面向對象的方式來表示一組Unicode字元。它經常與NSSt ...
對於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 )
來刪除輸入字元串的頭尾的空白符號。
需要重點註意的是,這個方法 僅僅 去除了 開頭 和 結尾 的指定字元集中連續字元。這就是說,如果你想去除單詞之間的額外空格,請看下一步。