Как проверить, являются ли содержимое строки числовыми значениями? - PullRequest
1 голос
/ 06 октября 2011

Я видел этот вопрос , но ему 2 года.Есть ли лучший \ более простой \ более новый способ проверить, имеет ли строка числовые значения.например, 1 или 1,54 или -1 или -1,54 и т. д. и т. д.

Ответы [ 2 ]

7 голосов
/ 06 октября 2011
bool status;
NSScanner *scanner;
NSString *testString;
double result;

scanner = [NSScanner scannerWithString:testString];
status = [scanner scanDouble:&result];
status = status && scanner.scanLocation == string.length;

Если status == YES, тогда строка полностью числовая.

Или, как указывает @Dave из этого SO ответа :

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
number = [formatter numberFromString:string];
status = number != nil;

(Я не протекаю, я использую ARC: -))

0 голосов
/ 06 октября 2011

вы можете использовать [NSString floatValue]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...