美文网首页iOS开发学习
iOS判断一个字符串是否全是数字

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

作者: 香橙柚子 | 来源:发表于2018-02-07 18:03 被阅读478次

最近有一个需求,需要判断后台返回的字段是否全部是数字.首先想到的事正则,还有就是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];
}
- (BOOL)isNum:(NSString *)checkedNumString {
    NSCharacterSet *str=[[NSCharacterSet characterSetWithCharactersInString:@".1234567890-"] invertedSet];
    NSString *filter=[[checkedNumString componentsSeparatedByCharactersInSet:str] componentsJoinedByString:@""];
    BOOL isNum = [checkedNumString isEqualToString:filter];
    return isNum;
}

-(NSString *)conversionDisplayContent:(NSString *)content{
    if ([self isNum:content]) {  //全是数字
        NSString *str =[self decimalwithFloatString:content];
        return [NSString stringWithFormat:@"%.2f",[str floatValue]];
    } else {
        return content;
    }
}

- (NSString *)decimalwithFloatString:(NSString *)floatV{
    NSDecimalNumberHandler *behavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
    NSDecimalNumber *numResult1 = [NSDecimalNumber decimalNumberWithString:floatV];
    return [NSString stringWithFormat:@"%@",[numResult1 decimalNumberByRoundingAccordingToBehavior:behavior]];
}

相关文章

  • C语言 判断一个字符串是否全为数字

    代码 结果:不全是数字 参考链接:C语言 判断一个字符串是否全为数字

  • iOS 各种判断

    iOS 判断数字 iOS 判断邮箱 空字符串 电话号码

  • iOS【NSString基本方法】

    判断字符串是否包含数字 判断字符串是否包含英文字母 判断字符串是否包含数字与字母 去掉首尾空格字符 判断是否为空 ...

  • Isdigit and isalnum

    isdigit判断字符串是否全由数字组成 isalnum判断字符串是否全由数字和字母组成

  • JS常用字符串处理轮子

    一、字符串限制 判断字符串是否全部都是数字 判断字符串是否全部都是字母 判断字符串是否是字符与数字 字符串前后空格...

  • java 正则 常用

    1、判断字符串 是否为纯字母 2、判断字符串 是否为纯数字 3、判断字符串 是由字母和数字组成 4、判断字符串 是...

  • android:判断字符串是否全是数字

  • 字符串面试题总结

    规则判断 判断字符串是否符合整数规则 判断字符串是否符合浮点数规则 判断字符串是否符合回文字符串规则 数字运算in...

  • 校验字符串

    目录:1、校验字符串是否为空2、判断字符串是否符合邮政编码格式3、判断字符串是否全是整数4、判断字符串是否全部是字...

  • Hive 正则表达式

    判断字符串是否是数字 或

网友评论

    本文标题:iOS判断一个字符串是否全是数字

    本文链接:https://www.haomeiwen.com/subject/dueazxtx.html