判断字符是否是纯数字

1
2
3
4
5
6
7
8
//使用NSScanner类, 
[self isPureInt:text] //传入字符串并调用方法判断

- (BOOL)isPureInt:(NSString*)string{
NSScanner* scan = [NSScanner scannerWithString:string]; //定义一个NSScanner,扫描string
int val;
return [scan scanInt:&val] && [scan isAtEnd];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 同理 可以检测float double 等等格式


//[scan scanInt:&val]
//扫描的Int类型放入val
//根据NSScanner的机制,如果扫描到结果需要的数据,那么它就会停在数据结尾的下一个字符处
//例如:string = @"12ccf12";如果扫描Int类型,那么第一次扫描到第二个字符处就停止了,如果要扫描全部需要进行循环判断
//扫描结束后,没有到string的结尾,那么[scan isAtEnd]为NO
//所以
//[scan isAtEnd]
//判断是否到结尾
//这样就能保证一遍扫描到结尾的数据全部是int,[scan scanInt:&val] 和[scan isAtEnd]都为YES;
//结果isPureInt 返回YES;
//类似其他的判断也可以参考NSScanner

文章目录