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.

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"];

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];
}

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


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


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;

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

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];


0

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


0

Sie können auch wie folgt verwenden:

NSInteger getVal = [self.string integerValue];


0

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

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

Dies ist ein genaues Duplikat einer vorhandenen Antwort.
Pranav Kasetti
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.