Converti una stringa in un int


87

Ho problemi a convertire una stringa in un numero intero. L'ho cercato su Google ma tutto quello che riesco a trovare è come convertire un int in una stringa. Qualcuno sa come fare il contrario? Grazie.

Risposte:



22

Che ne dite di

[@"7" intValue];

Inoltre, se lo desideri, NSNumberpotresti farlo

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

6
buon signore NSNumberFormatter è complesso ... intendo "funzionalità completa".
Dave Dopson

4
Attenzione: in iOS7 numberFromStringsembra essere un metodo di istanza piuttosto che di classe , quindi dovresti farlo [[NSNumberFormatter new] numberFromString:@"7"];invece.
mgarciaisaia

@mgarciaisaia non dovremmo fare [[[NSNumberFormatter alloc] init] numberFromString:@"7"];come per stackoverflow.com/questions/719877/...
Michael Osofsky

3

Io uso:

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

E viceversa:

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

1
controlla il tuo valore di ritorno. NSString *
AWF4vk

Sto usando dati estratti da NSUserDefaults, quindi cosa devo inserire dopo NSString * string =
MacN00b

Uno di questi funzionerà davvero? Sicuramente le definizioni richiedono un punto e virgola o andrai in crash unrecognized selectorperché in realtà @selector(intToString:)non invierai @selector(intToString). Sicuramente dovrebbe essere così invece - (NSInteger) stringToInt:(NSString *)string;e- (NSString *)intToString:(NSInteger)integer;
Paul.s

1
Sono entrambe funzioni C. Deve essere NSString *però, come ha detto @David.
Espresso

@Espresso applausi Non ho esperienza in C quindi ha più senso ora
Paul.s


1

Questa è la soluzione semplice per convertire la stringa in int

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

ma quando ottieni valore dal campo di testo ,

int num = [txtField.text intValue];

dove txtField è un'uscita di UITextField


1

Ho dovuto fare qualcosa del genere, ma volevo usare un getter / setter per il mio. In particolare volevo tornare a lungo da un campo di testo. Anche le altre risposte hanno funzionato bene, ho finito per adattare un po 'la mia mentre il mio progetto scolastico si evolveva.

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

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

Sto usando dati estratti da NSUserDefaults, quindi cosa devo inserire dopo la stringa NSString * =
MacN00b

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

0

Molto facile..

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


0

Ancora un altro modo: se stai lavorando con una stringa C, ad esempio const char *, C native atoi()è più conveniente.


0

Puoi anche usare come:

NSInteger getVal = [self.string integerValue];


0

Per convertire un numero di stringa in un Int , dovresti fare questo:

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

Questo è un duplicato esatto di una risposta esistente.
Pranav Kasetti
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.