cocoa_chen

用NSScanner判断String内容是否为整型或者浮点型数据

2014-10-27

在开发的过程中会遇到各种各样的需求,比如需要判断一个NSString的变量内容是否为Int数据或者Float数据,这时候可以用NSScanner来简单的判断下

1.判断NSString是否为int内容

1
2
3
4
5
6
7
8
- (BOOL)isPureInt:(NSString *)string{
if (!string) {
return NO;
}
NSScanner *_scanner = [NSScanner scannerWithString:string];
int val;
return [_scanner scanInt:&val] && [_scanner isAtEnd];
}

调用测试如下:

1
2
3
4
5
6
NSString *pureIntString = @"123";
NSString *noPureIntString = @"123ab";
BOOL isPure1 = [self isPureInt:pureIntString];
NSLog(@"'%@'字符串%@int内容的字符串",pureIntString,isPure1 ? @"是" : @"不是");
BOOL isPure2 = [self isPureInt:noPureIntString];
NSLog(@"'%@'字符串%@int内容的字符串",noPureIntString,isPure2 ? @"是" : @"不是");

2.判断NSString是否为float内容

1
2
3
4
5
6
7
8
- (BOOL)isPureFloat:(NSString *)string{
if (!string) {
return NO;
}
NSScanner* scan = [NSScanner scannerWithString:string];
float val;
return [scan scanFloat:&val] && [scan isAtEnd];
}

调用测试如下:

1
2
3
4
5
6
NSString *pureFloatString = @"1.23";
NSString *nopureFloatString = @"1.23a";
BOOL isPure1 = [self isPureFloat:pureFloatString];
NSLog(@"'%@'字符串%@float内容的字符串",pureFloatString,isPure1 ? @"是" : @"不是");
BOOL isPure2 = [self isPureFloat:nopureFloatString];
NSLog(@"'%@'字符串%@float内容的字符串",nopureFloatString,isPure2 ? @"是" : @"不是");

总结

NSScanner还提供其他的API来检测对应的数据类型,遇到对应的需求大家可以尝试使用一下!

Tags: iOS
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章