NSScanner類的基本用法

2021-07-05 21:19:21 字數 1879 閱讀 5062

nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。

一.建立乙個scanner

nsscanner是乙個類族,nsscanner是其中公開的一類。通常,可以用scannerwithstring:localizedscannerwithstring:方法初始化乙個scanner。這兩個方法都返回乙個scanner物件並用你傳遞的字串引數初始化其string屬性。剛建立時scanner物件指向字串的開頭。scanner方法開始掃瞄,比如scanint:scandouble:scanstring:intostring:。如果你要想掃瞄多遍,通常需要使用while迴圈。

float afloat;  

nsscanner *thescanner = [nsscanner scannerwithstring:astring];

while ([thescanner isatend] == no)

二.scanner的使用

掃瞄操作從上次掃瞄的位置開始,並且繼續往後掃瞄直到指定的內容出現為止(如果有的話)。

以字串「137 small cases of bananas」為例,在掃瞄完乙個整數之後,scanner的位置將變為3,也即數字後面的空格處。通常,你會繼續掃瞄並跳過你不關心的字元。那麼你可以用setscanlocation:方法跳過某幾個字元(也可以用這個方法在發生某些錯誤後,重新開始掃瞄字串的某部分)。如果你想跳過某種特殊的字符集中的字元時,可以使用setcharacterstobeskipped:方法。scanner在任何掃瞄操作時會跳過空白字元之後才開始。但是當它找到乙個可以掃瞄的字元時,它會用全部字元去和指定內容匹配。scanner預設情況下會忽略空白字元和換行符。注意,對於忽略字元,總是大小寫敏感的。例如要忽略所有原音字母,你必須使用「aeiouaeiou」,而不能僅僅是「aeiou」或「aeiou」。

如果你想獲取當前位置的某個字串的內容,可以使用scanuptostring:intostring:方法(如果你不想保留這些字元,可以傳遞乙個null給第2個引數)。

例如,以下列字串為例:

137 small cases of bananas

下面的**,可以從字串中找出包裝規格(small cases)和包裝數量(137)。

int main(int argc, const

char * argv)

return

0;}

輸出結果為:

三.nsscanner的幾個方法

整形判斷

- (bool)ispureint:(nsstring *)string
2.浮點形判斷:

- (bool)ispurefloat:(nsstring *)string

NSScanner類的基本用法

nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們翻譯 轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。建立乙個scanner nsscanner是乙個類族,nsscanner是其中公開的...

NSScanner類的基本用法

nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們翻譯 轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。建立乙個scanner nsscanner是乙個類族,nsscanner是其中公開的...

NSScanner類的基本用法

nsscanner類的基本用法 nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們翻譯 轉換為數字和別的字串。可以在建立nsscanner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。建立乙個scanner nsscanner是乙個類...