以下代码将标识字符串是否为整数 - 即字符串仅包含数字。但是,我讨厌这段代码。什么是更好的方式?
NSString *mightBeAnInteger = fooString;
int intValue = [fooString intValue];
if (intValue > 0
&& [[NSString stringWithFormat:@"%d",intValue] isEqualToString:mightBeAnInteger]) {
NSLog(@"mightBeAnInteger is an integer");
}
答案 0 :(得分:21)
[fooString rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location == NSNotFound
将为YES。
请注意,这不会捕获负数,因此您必须添加负号(可能是通过抓取mutableCopy
并添加符号)。
答案 1 :(得分:1)
-(BOOL) stringIsNumeric:(NSString *) str {
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSNumber *number = [formatter numberFromString:str];
[formatter release];
return !!number; // If the string is not numeric, number will be nil
}