3d天中图库好运彩 >iOS开发

iOS判断一个字符串是否全是数字

2019-03-14 10:36 编辑: Gboy 分类:iOS开发 来源:iOS_xuanhe

最近有一个需求,需要判断后台返回的字段是否全部是数字.首先想到的事正则,还有就是NSCharacterSet,但是NSCharacterSet不怎么会用.(等过两天,我就写文章将这个).
于是就上网查了查.果然还有别的方法.
大概也就三种方法:

  1. 正则.

- (BOOL) judgeIsNumberByRegularExpressionWith:(NSString *)str
{   if (str.length == 0) {        return NO;
    }    NSString *regex = @"[0-9]*";    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];    if ([pred evaluateWithObject:str]) {        return YES;
    }    return NO;
}
  1. 使用NSCharacterSet.
    stringByTrimmingCharactersInSet函数可以把我们指定的特殊字符过滤掉,进而判断剩下的内容,如果是空,说明全部是数字.

 - (BOOL)theStringIsAllNumbers:(NSString *)str {
    str = [str stringByTrimmingCharactersInSet:[NSCharacterSet decimalDigitCharacterSet]];    if(str.length > 0) {        return NO;
    }    return YES;
}

3.用NSScanner类来判断
NSScanner是一个类,用于在字符串中扫描指定的字符。
想详细了解,可以参考NSScanner类条件判断利器详解

- (BOOL) theStringIsAllNumbers:(NSString*)str{    NSScanner* scan = [NSScanner scannerWithString: str];    int val;    return[scan scanInt:&val] && [scan isAtEnd];
}


作者:iOS_xuanhe
链接:https://www.jianshu.com/p/5ac504c28ec6
搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇:iOS中imageNamed与imageWithContentsOfFile的区别
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部
838| 220| 415| 864| 210| 660| 916| 145| 696| 644|