В объекте c, как я могу проверить, является ли строка /NSNumber целым или int
Цель c: Проверить, является ли целое число/int/number
Ответ 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 получил несколько похожих.