NSScanner 使用例項

2021-07-09 23:26:11 字數 2188 閱讀 8653

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是其中公開的一...