En Objective C, ¿cómo puedo comprobar si una cadena/NSNumber es un entero o intc Objetivo: Comprobar si enteros/int/número
Respuesta
Usted puede utilizar el método intValue en NSString:
NSString *myString = @"123";
[myString intValue]; // returns (int)123
Aquí está la documentación de Apple para él - devolverá 0 si no es un número entero válido: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/intValue
Espero que ayude!
¿Cómo puedo encontrar si una variable es una cadena? – Daniel
Al igual que en, ¿desea verificar y ver si alguna entrada de usuario es simplemente una cadena simple o un número? Como dije antes, intValue devuelve 0 para cuando un NSString no es un entero válido.Digamos que está obteniendo información de una UITextView - [[myTextView text] intValue] devolvería una int válida si es posible, o 0 si no se puede validar como una int. – codykrieger
Bueno, vea que el problema es. Algunas veces el usuario no ingresará ninguna entrada. porque no es requerido Y dado que estoy usando una matriz y agarrando el objeto de ella. Me estoy poniendo *** - [NSCFArray objectAtIndex:]: índice (3) más allá de los límites (3) tengo que comprobar si la matriz es válida de alguna manera? – Daniel
Para comprobar si un NSNumber si un intento entero:
const char *t = [(NSNumber *)value objCType];
if (strcmp("i", t) == 0); // YES if integer
Si usted está tratando de determinar si existe o no una NSString
tiene un valor numérico o no, trate de usar 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
}
¡¡Pensé que era el único que había hecho !! hack para obligar a boolean. ¡Bonito! –
Esta pregunta es mejor que la [respuesta aprobada] (http://stackoverflow.com/a/3473806/377384) porque le da un resultado verdadero/falso. La respuesta aprobada no. –
Esto es mejor, porque la respuesta aceptada no funciona como se espera si marca una cadena con letras que comienza con el número. El ejemplo "1234asdf" devolverá 1234, no 0, esto devuelve NO. Y "000" devolverá 0 y podría pensar que está mal, pero no es – jcesarmobile
Puede por supuesto en primer lugar determinar si es un NSString o NSNumber utilizando
[isKindOfClass objeto: [clase NSString]] etc ...
- BOOLVALUE - charValue - decimalValue - doubleValue - floatValue - intValue - integerValue - longLongValue - longValue - shortValue - unsignedCharValue - unsignedIntegerValue - unsignedIntValue - unsignedLongLongValue - unsignedLongValue - unsignedShortValue
son todos los métodos de NSNumber para obtener sus valores. NSString tiene algunas similares.
He puesto esto en mi categoría NSString (Util)
.
- (BOOL) isInt {
if ([self isEqualToString:@"0"])
return YES;
return (self.intValue != 0);
}
Para NSString, si utiliza intValue/IntegerValue, hay ciertos casos en los que no se manejan, ya que toma en consideración sólo el comienzo de la cadena.
Por ejemplo @ "bl3h" no se consideró un entero, pero @ "3h" dio una potencia de 3
Mi solución para NSString:
Uso:
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:strName];
NSCharacterSet *numSet = [NSCharacterSet decimalDigitCharacterSet];
if([numSet isSupersetOfSet: charSet])
{
// It is an integer (or it contains only digits)
}
- 1. objetivo comprobar si el campo de texto está vacío
- 2. ¿Cómo comprobar si un UIViewController es de una subclase particular en el objetivo c?
- 3. Objetivo-C: Cómo comprobar si una variable es un objeto, una estructura u otra primitiva
- 4. C# DataGridView Comprobar si está vacío
- 5. C++ comprobar si una fecha es válida
- 6. Comprobar si la tabla existe en C#
- 7. C# comprobar si un directorio está oculto?
- 8. C# Comprobar si se ejecuta como administrador
- 9. cómo comprobar si IsNumeric
- 10. Ajuste del objetivo C en el objetivo C++/C++
- 11. Comprobar si existe recurso
- 12. Comprobar si existe tabla
- 13. Comprobar si es falso
- 14. Verificar inf - objetivo c
- 15. Objetivo XOR-c
- 16. objetivo-c - variables globales
- 17. Objetivo C - Clase KeyValuePair?
- 18. Objetivo C "#if" sintaxis
- 19. objetivo c constantes clase
- 20. Mezcla C y objetivo-C
- 21. Comprobar si un punto está en un rectángulo girado (C#)
- 22. Cómo comprobar si un objeto es serializable en C#
- 23. C# .NET: ¿Cómo comprobar si estamos funcionando con batería?
- 24. Objective-C cómo comprobar si una cadena es nula
- 25. ¿Cómo puedo comprobar si existe un objeto en C++
- 26. C# comprobar si el usuario miembro de un grupo?
- 27. C# - cómo comprobar si un proceso se inició con éxito
- 28. ¿Cómo comprobar si el directorio existe usando C++ y Winapi
- 29. ¿Cómo comprobar si un tipo es una cadena en C#?
- 30. Cómo comprobar si hay algo en cin [C++]
Por favor, explique con más detalle A qué te refieres. Tanto NSString como NSNumber se pueden convertir a int o NSInteger, pero ni * is * an int ni NSInteger. – Chuck
Bien, lo siento, necesito saber si un String o Int es un entero/entero. Vea que estoy dividiendo un número por otro número, pero el número que coloca un usuario puede no ser un int. Necesito comprobar si es un número int – Daniel