iOS开发 OC 判断字符串内容是否是整数或浮点数
时间: 2023-11-25 10:06:35 浏览: 89
在OC中,可以通过以下方法判断一个字符串是否为整数或浮点数:
NSString *str = @"12.34";
NSScanner *scanner = [NSScanner scannerWithString:str];
BOOL isNumeric = [scanner scanDouble:NULL] && [scanner isAtEnd];
这段代码会尝试将字符串str
转换成一个浮点数,如果成功转换,并且扫描器已经扫描到字符串末尾,那么就说明这个字符串是一个数字。如果isNumeric
为YES
,就表示这个字符串是数字;如果为NO
,则表示不是数字。
需要注意的是,这种方法可以判断整数和浮点数,但是如果字符串中包含非数字字符,也会被判断为不是数字。如果需要更加精确的判断,请使用正则表达式。
相关问题
iOS开发 OC 判断字符串内容是否是数字
在OC中,可以通过以下方法判断一个字符串是否为数字:
NSString *str = @"1234";
NSScanner *scanner = [NSScanner scannerWithString:str];
BOOL isNumeric = [scanner scanInteger:NULL] && [scanner isAtEnd];
这段代码会尝试将字符串str
转换成一个整数,如果成功转换,并且扫描器已经扫描到字符串末尾,那么就说明这个字符串是一个数字。如果isNumeric
为YES
,就表示这个字符串是数字;如果为NO
,则表示不是数字。
需要注意的是,这种方法只能判断整数,如果需要判断浮点数,则需要使用其他的方法。
iOS开发 OC 正则表达式 判断字符串内容是否是数字
在OC中,可以使用正则表达式来判断一个字符串是否为数字。下面是一个判断整数和浮点数的正则表达式:
NSString *str = @"12.34";
NSString *pattern = @"^-?\\d+(\\.\\d+)?$";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSTextCheckingResult *result = [regex firstMatchInString:str options:0 range:NSMakeRange(0, str.length)];
BOOL isNumeric = result != nil;
这段代码中,我们使用了NSRegularExpression
类来创建一个正则表达式,并使用该表达式在字符串中查找匹配。匹配成功后,会返回一个NSTextCheckingResult
对象,如果该对象不为空,就表示字符串是数字。
需要注意的是,这个正则表达式可以匹配整数和浮点数,但是不能匹配科学计数法表示的数字。如果需要支持科学计数法,可以使用其他的正则表达式。