Konvertieren Sie eine Zeichenfolge in eine int

87

Ich habe Probleme beim Konvertieren eines Strings in eine Ganzzahl. Ich habe es gegoogelt, aber alles, was ich finden kann, ist, wie man ein int in einen String konvertiert. Weiß jemand, wie man es umgekehrt macht? Vielen Dank.

MacN00b
quelle

Antworten:

22

Wie wäre es mit

[@"7" intValue];

Wenn Sie möchten, können NSNumberSie dies auch tun

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];
Paul.s
quelle
6
Guter Lord NSNumberFormatter ist komplex ... ich meine "Feature abgeschlossen".
Dave Dopson
4
Achtung - in iOS7 numberFromStringscheint es sich eher um eine Instanzmethode als um eine Klasse zu handeln. Sie sollten dies [[NSNumberFormatter new] numberFromString:@"7"];stattdessen tun .
mgarciaisaia
@mgarciaisaia sollten wir nicht [[[NSNumberFormatter alloc] init] numberFromString:@"7"];gemäß stackoverflow.com/questions/719877/…
Michael Osofsky
3

Ich benutze:

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

Und umgekehrt:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}
max_
quelle
1
Überprüfen Sie Ihren Rückgabewert. NSString *
David
Ich verwende Daten aus NSUserDefaults, also was soll ich nach dem NSString * string =
MacN00b
Wird beides tatsächlich funktionieren? Sicherlich müssen die Definitionen ein Semikolon oder Sie werden mit abstürzen , unrecognized selectorweil Sie tatsächlich das Senden wird @selector(intToString:)nicht @selector(intToString). Sicherlich sollte es stattdessen so sein - (NSInteger) stringToInt:(NSString *)string;und- (NSString *)intToString:(NSInteger)integer;
Pauls
1
Sie sind beide C-Funktionen. Es muss aber sein NSString *, wie @David sagte.
Espresso
@Espresso Prost Ich habe keinen Hintergrund in C, also macht es jetzt mehr Sinn
Pauls
2

Swift 3.0:

Int("5")

oder

let stringToConvert = "5"
Int(stringToConvert)
Josh O'Connor
quelle
1

Dies ist die einfache Lösung zum Konvertieren von Zeichenfolgen in int

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

aber wenn Sie dann Wert aus dem Textfeld erhalten ,

int num = [txtField.text intValue];

Dabei ist txtField ein Ausgang von UITextField

iAnkit
quelle
1

Ich musste so etwas machen, wollte aber einen Getter / Setter für meinen verwenden. Insbesondere wollte ich lange von einem Textfeld zurückkehren. Die anderen Antworten haben auch alle gut funktioniert. Ich habe mich nur ein wenig angepasst, als sich mein Schulprojekt weiterentwickelte.

long ms = [self.textfield.text longLongValue];
return ms;
natur3
quelle
0
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Alexsander Akers
quelle
Ich verwende Daten aus NSUserDefaults, also was soll ich nach dem NSString * string =
MacN00b
1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "YOUR_KEY"];
Benjamin Mayo
0

Sehr leicht..

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

Jacob
quelle
0

Noch eine andere Möglichkeit: Wenn Sie mit einer C-Zeichenfolge arbeiten, z. B. const char *, ist C native atoi()bequemer.

Dotslashlu
quelle
0

Sie können auch wie folgt verwenden:

NSInteger getVal = [self.string integerValue];

Neue Biene
quelle
0

Um eine String- Nummer in ein Int zu konvertieren , gehen Sie folgendermaßen vor:

let stringNumber = "5"
let number = Int(stringNumber)
Ale Mohamad
quelle
Dies ist ein genaues Duplikat einer vorhandenen Antwort.
Pranav Kasetti