在寫學生管理系統的時候,需要判斷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....