我们如何检查一个字符串是否只由数字组成。我正在从字符串中取出一个子字符串,并希望检查它是否是数值子字符串。
NSString *newString = [myString substringWithRange:NSMakeRange(2,3)];
发布于 2011-05-23 07:13:59
这里有一种不依赖于尝试将字符串解析为数字的有限精度的方法:
NSCharacterSet* notDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if ([newString rangeOfCharacterFromSet:notDigits].location == NSNotFound)
{
// newString consists only of the digits 0 through 9
}
参见+[NSCharacterSet decimalDigitCharacterSet]
和-[NSString rangeOfCharacterFromSet:]
。
发布于 2011-05-23 07:10:12
我建议使用NSNumberFormatter类中的numberFromString:
方法,如果数字无效,它将返回nil;否则,它将返回NSNumber。
NSNumberFormatter *nf = [[[NSNumberFormatter alloc] init] autorelease];
BOOL isDecimal = [nf numberFromString:newString] != nil;
发布于 2011-05-23 07:08:01
您可以创建一个NSScanner并简单地扫描字符串:
NSDecimal decimalValue;
NSScanner *sc = [NSScanner scannerWithString:newString];
[sc scanDecimal:&decimalValue];
BOOL isDecimal = [sc isAtEnd];
查看NSScanner's documentation,了解更多可供选择的方法。
https://stackoverflow.com/questions/6091414
复制相似问题