NSString中的數字問題

2021-09-26 00:00:43 字數 1408 閱讀 9367

在寫學生管理系統的時候,需要判斷student類中 學生姓名中是否有數字,學號、年齡、成績是否全為數字,而在定義時把它們都設為了nsstring,所以需要從nsstring中提取出,或判斷出數字。

用於判斷學生姓名

//用來判斷姓名和班級  是否含有數字

nscharacterset *characterset =

[[nscharacterset decimaldigitcharacterset]invertedset]

;int numble =

[[@"網路1803"stringbytrimmingcharactersinset:characterset]intvalue]

;nslog

(@"%d"

, numble)

;

在這裡,輸出結果為:1803

也就是說,這個可以提取出nsstring中的數字,而沒有數字,則會輸出0,所以可以加判斷運用:

if

(value ==0)

else

注意:當nsstring中的數字為0時,輸出同樣也為0,無法判斷有無數字

用於判斷學生學號、年齡、成績

//用來判斷學號和成績  是否全為數字

nsscanner *scan =

[nsscanner scannerwithstring:@"1242431dfbs"];

int numble;

nslog

(@"%hhd %hhd"

,[scan scanint:

&numble]

,[scan isatend]);

nslog

(@"%d"

, numble)

;

輸出結果是:

1 01242431

而如果把nsstring裡的數字和字母改一下順序,變成這樣:

//用來判斷學號和成績  是否全為數字

nsscanner *scan =

[nsscanner scannerwithstring:@"dfbs1242431"];

int numble;

nslog

(@"%hhd %hhd"

,[scan scanint:

&numble]

,[scan isatend]);

nslog

(@"%d"

, numble)

;

結果則會變成:

0 00

所以scanint可以用來提取nsstring中開頭的數字賦值給numble。

而scan isatend,則是當nsstring全為數字時,返回1,其餘只要存在不是數字的字元,都返回0;

objective c中的NSString操作

1 建立常量字串。nsstring astring this is a string 2 建立空字串,給予賦值。nsstring astring nsstring alloc init astring this is a string nslog astring astring astring re...

NSString的記憶體管理問題

nsstring是乙個不可變的字串物件。這不是表示這個物件宣告的變數的值不可變,而是表示它初始化以後,你不能改變該變數所分配的記憶體中的值,但你可以重新分配該變數所處的記憶體空間。生成乙個nsstring型別的字串有三種方法 方法1.直接賦值 nsstring str1 my string 方法2....

NSString的記憶體管理問題

nsstring是乙個不可變的字串物件。這不是表示這個物件宣告的變數的值不可變,而是表示它初始化以後,你不能改變該變數所分配的記憶體中的值,但你可以重新分配該變數所處的記憶體空間。生成乙個nsstring型別的字串有三種方法 方法1.直接賦值 nsstring str1 my string 方法2....