nsscanner是系統提供的乙個可以掃瞄字串中內容的方法,由於location這個屬性的特性,nsscanner常常配合迴圈使用
先看看nsscanner的幾個基本屬性
@property (readonly, copy) nsstring *string; //通過這個屬性可以用getter方法匯出scanner初始化時設定string
@property nsuinteger scanlocation; //最重要的屬性,代表scanner目前掃瞄的位置,可以使用setter方法
@property (nullable, copy) nscharacterset *characterstobeskipped; //掃瞄時需要跳過的字元
@property bool casesensitive; //忽略大小寫區別
nsscanner的常用方法
1.scanstring: intostring:
在scanner中搜尋目標字串,如果第乙個字元和目標字串相等,return 1,如果第乙個字元和目標字串不相等,return 0.intostring為返回的目標字串(也可以設定為nil),scanner.scanlocation值變成目標字串後面一位
2.scanuptostring: intostring:
在scanner中搜尋目標字串,如果第乙個字元和目標字串相等,return 0,intostring為返回的目標字串(也可以設定為nil),scanner.scanlocation值保留目標字串前面一位
scanner的實際應用
#import "nsstring+scanner.h" //建立了乙個nsstring的category,方便方法的呼叫
@implementation
nsstring (scanner)
//1.查詢某個string裡是否含有int值
- (bool)ispureint
//2.查詢給定string中所含有的全部浮點數值
- (void)scanfloatvalue
scanner.scanlocation++;//由於scanlocation的特殊機制,這裡需要注意的是如果最後字串最後一位是浮點數型別的話會crash,在最後一位拼接上乙個字母就可以正常執行了.
}}
在main. m中可以用nsstring的物件直接呼叫方法
#import
#import "nsstring+scanner.h"
int main(int argc, char * argv)
else
//輸出:是純int
nsstring *floatstring = @"1.5,2.8,-0.99,pre hour;";
[floatstring scanfloatvalue];
//輸出:floatvalue = 1.50
// floatvalue = 2.80
// floatvalue = -0.99
}
3.假設有個txt格式的文字:
fwerwer
asfdapeirjqpierj;;
wwr想要從中提取出<>內的內容
**如下:
nsstring *tmp;
nsarray *lines;
lines = [[nsstring stringwithcontentsoffile:@"/users/linjiaqiao/documents/now/lesson-oc-04/lesson-oc-04/安裝包密碼.txt" encoding:nsutf8stringencoding error:nil] componentsseparatedbystring:@"\n"];
nslog(@"lines = %@",lines);
nsenumerator *nse = [lines objectenumerator];//建立乙個列舉器
// 讀取<>裡的內容
while(tmp = [nse nextobject])
}//控制台輸出 sales of acme potato peeler: $71.54
sales of chef pierre pasta fork: $14.25
sales of chef pierre colander: $2.54
NSScanner類的基本用法
nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們翻譯 轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。建立乙個scanner nsscanner是乙個類族,nsscanner是其中公開的...
NSScanner類的基本用法
nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們翻譯 轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。建立乙個scanner nsscanner是乙個類族,nsscanner是其中公開的...
NSScanner類的基本用法
nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。一.建立乙個scanner nsscanner是乙個類族,nsscanner是其中公開的一...