NSString是整数?
如何检查一个NSString的内容是否是一个整数值? 有没有现成的方法?
有一些更好的方法,然后做这样的事情:
- (BOOL)isInteger:(NSString *)toCheck { if([toCheck intValue] != 0) { return true; } else if([toCheck isEqualToString:@"0"]) { return true; } else { return false; } }
您可以使用-intValue
或-integerValue
方法。 如果string不是以一个有点耻辱的整数开始,则返回零,因为零是一个整数的有效值…
更好的select可能是使用[NSScanner scanInt:]
,它返回一个BOOL
指示是否find合适的值。
像这样的东西:
NSScanner* scan = [NSScanner scannerWithString:toCheck]; int val; return [scan scanInt:&val] && [scan isAtEnd];
build立在@kevbo的答案 ,这将检查整数> = 0:
if (fooString.length <= 0 || [fooString rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location != NSNotFound) { NSLog(@"This is not a positive integer"); }
以上的快速版本:
func getPositive(incoming: String) -> String { if (incoming.characters.count <= 0) || (incoming.rangeOfCharacterFromSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet) != nil) { return "This is NOT a positive integer" } return "YES! +ve integer" }
不要忘记带小数点的数字!
NSMutableCharacterSet *carSet = [NSMutableCharacterSet characterSetWithCharactersInString:@"0123456789."]; BOOL isNumber = [[subBoldText stringByTrimmingCharactersInSet:carSet] isEqualToString:@""];