在我的iPhone应用程序中,我试图了解字符串是否是有效数字,下面的代码大多数时候都有效,但是当我有一个以数字开头和以文本结尾的值时,它错误地返回“true”,例如“34rty”
if([[NSScanner scannerWithString:value] scanDouble:NULL] ){
val=[NSNumber numberWithDouble:[value doubleValue]];
}
这是怎么了
最佳答案
scanDouble
通过引用返回。
NSString *string = @"34rty";
NSScanner *scanner = [NSScanner scannerWithString:string];
double doubleValue;
[scanner scanDouble:&doubleValue];
NSNumber *doubleNumber = [NSNumber numberWithDouble:doubleValue];
NSLog(@"doubleValue: %f", doubleValue);
NSLog(@"doubleNumber: %@", doubleNumber);
NSLog输出:
doubleValue: 34.000000
doubleNumber: 34
如果前面有文字,您将必须扫描至该号码。
正如@Benjamin所说,RegEx可能只是检查的更好选择。
关于iphone - objective-c :NSScanner扫描双重问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499626/