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:@""];