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.

MacN00b
fuente

Respuestas:

22

Qué tal si

[@"7" intValue];

Además, si quieres, NSNumberpuedes hacer

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];
Paul.s
fuente
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];
}
max_
fuente
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
2

Swift 3.0:

Int("5")

o

let stringToConvert = "5"
Int(stringToConvert)
Josh O'Connor
fuente
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

iAnkit
fuente
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;
natur3
fuente
0
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Alexsander Akers
fuente
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];

Jacob
fuente
0

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

puntoslashlu
fuente
0

También puedes usar like:

NSInteger getVal = [self.string integerValue];

nueva abeja
fuente
0

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

let stringNumber = "5"
let number = Int(stringNumber)
Ale Mohamad
fuente
Este es un duplicado exacto de una respuesta existente.
Pranav Kasetti