Convertir una cadena en un int


87

Tengo problemas para convertir una cadena en un número entero. Lo busqué en Google, pero todo lo que puedo encontrar es cómo convertir un int en una cadena. ¿Alguien sabe cómo hacerlo al revés? Gracias.

Respuestas:



22

Qué tal si

[@"7" intValue];

Además, si quieres, NSNumberpuedes hacer

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];

6
buen señor NSNumberFormatter es complejo ... quiero decir "característica completa".
Dave Dopson

4
Cuidado: en iOS7 numberFromStringparece ser un método de instancia en lugar de uno de clase , por lo que debería hacerlo en su [[NSNumberFormatter new] numberFromString:@"7"];lugar.
mgarciaisaia

@mgarciaisaia no deberíamos hacer [[[NSNumberFormatter alloc] init] numberFromString:@"7"];según stackoverflow.com/questions/719877/…
Michael Osofsky

3

Yo suelo:

NSInteger stringToInt(NSString *string) {
    return [string integerValue];
}

Y viceversa:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

1
verifique su valor de retorno. NSString *
AWF4vk

Estoy usando datos extraídos de NSUserDefaults, entonces, ¿qué debo poner después de NSString * string =
MacN00b

¿Funcionará realmente alguno de estos? Seguramente las definiciones necesitan un punto y coma o se bloqueará unrecognized selectorporque en realidad @selector(intToString:)no enviará @selector(intToString). Seguramente debería ser así en su lugar - (NSInteger) stringToInt:(NSString *)string;y- (NSString *)intToString:(NSInteger)integer;
Paul.s

1
Ambas son funciones C. Sin NSString *embargo, tiene que ser así , como dijo @David.
Espresso

@Espresso saludos No tengo experiencia en C, así que ahora tiene más sentido
Paul.s


1

Esta es la solución simple para convertir cadenas a int

NSString *strNum = @"10";
int num = [strNum intValue];

pero cuando obtiene valor del campo de texto ,

int num = [txtField.text intValue];

donde txtField es una salida de UITextField


1

Tenía que hacer algo como esto, pero quería usar un getter / setter para el mío. En particular, quería regresar un largo de un campo de texto. Las otras respuestas también funcionaron bien, simplemente terminé adaptando la mía un poco a medida que evolucionaba mi proyecto escolar.

long ms = [self.textfield.text longLongValue];
return ms;

0
NSString *string = /* Assume this exists. */;
int value = [string intValue];

Estoy usando datos extraídos de NSUserDefaults, así que, ¿qué debo poner después de NSString * string =
MacN00b

1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "YOUR_KEY"];
Benjamin Mayo

0

Muy fácil..

int (name of integer) = [(name of string, no ()) intValue];


0

Otra forma más: si está trabajando con una cadena C, por ejemplo, const char *, C native atoi()es más conveniente.


0

También puedes usar like:

NSInteger getVal = [self.string integerValue];


0

Para convertir un número de cadena en un Int , debe hacer esto:

let stringNumber = "5"
let number = Int(stringNumber)

Este es un duplicado exacto de una respuesta existente.
Pranav Kasetti
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.