Подтвердить что ты не робот

Цель c: Проверить, является ли целое число/int/number

В объекте c, как я могу проверить, является ли строка /NSNumber целым или int

4b9b3361

Ответ 1

Вы можете использовать метод intValue для NSString:

NSString *myString = @"123";
[myString intValue]; // returns (int)123

Вот документация Apple для него - он вернет 0, если это не действительное целое число: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/intValue

Надеюсь, что это поможет!

Ответ 2

Если вы пытаетесь определить, имеет ли значение NSString числовое значение или нет, попробуйте использовать NSNumberFormatter.

-(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
}

Ответ 3

Чтобы проверить, проверяет ли NSNumber целое число:

const char *t = [(NSNumber *)value objCType];
if (strcmp("i", t) == 0); // YES if integer

Ответ 4

Я поместил это в свою категорию NSString (Util).

- (BOOL) isInt {
    if ([self isEqualToString:@"0"])
        return YES;
    return (self.intValue != 0);
}

Ответ 5

Для NSString, если вы используете intValue/integerValue, есть определенные случаи, которые не обрабатываются, поскольку они учитывают только начало строки.

Например, @ "bl3h" не считался целым числом, но @ "3h" дал результат 3

Мое решение для NSString:

Использование:

NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:strName];

NSCharacterSet *numSet = [NSCharacterSet decimalDigitCharacterSet];

if([numSet isSupersetOfSet: charSet])
{
     // It is an integer (or it contains only digits)
}

Ответ 6

if( [(NSString *)someString intValue] )
{ /* Contains an int fosho! */ }

if( [(NSNumber *)someNumber intValue] )
{ /* Contains an int wich is not 0.... :D */ }

Вы можете сначала определить, является ли его NSString или NSNumber с помощью

[Object isKindOfClass: [NSString class]] и т.д.

- boolValue - charValue - decimalValue - doubleValue - floatValue - intValue - integerValue - longLongValue - longValue - shortValue - unsignedCharValue - unsignedIntegerValue - unsignedIntValue - unsignedLongLongValue - unsignedLongValue - unsignedShortValue

- все методы NSNumber для получения значений. NSString получил несколько похожих.