Konwertuj ciąg na int

87

Mam problem z konwersją ciągu znaków na liczbę całkowitą. Wyszukałem go w Google, ale wszystko, co mogę znaleźć, to przekonwertować int na ciąg. Czy ktoś wie, jak to zrobić na odwrót? Dzięki.

MacN00b
źródło

Odpowiedzi:

22

Co powiesz na

[@"7" intValue];

Dodatkowo, jeśli chcesz, NSNumbermożesz to zrobić

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];
Paul.s
źródło
6
dobry panie NSNumberFormatter jest złożona ... mam na myśli "funkcja kompletna".
Dave Dopson
4
Uważaj - w iOS7 numberFromStringwydaje się być metodą instancji , a nie klasową , więc powinieneś to zrobić [[NSNumberFormatter new] numberFromString:@"7"];.
mgarciaisaia
@mgarciaisaia nie powinniśmy robić [[[NSNumberFormatter alloc] init] numberFromString:@"7"];zgodnie ze stackoverflow.com/questions/719877/…
Michael Osofsky
3

Używam:

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

I wzajemnie:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}
max_
źródło
1
sprawdź wartość zwracaną. NSString *
AWF4vk
Używam danych pobranych z NSUserDefaults, więc co powinienem umieścić po NSString * string =
MacN00b
Czy któryś z nich faktycznie zadziała? Z pewnością definicje wymagają średnika, w przeciwnym razie nastąpi awaria, unrecognized selectorponieważ w rzeczywistości @selector(intToString:)nie wyślesz @selector(intToString). Z pewnością powinno być zamiast tego - (NSInteger) stringToInt:(NSString *)string;i- (NSString *)intToString:(NSInteger)integer;
Paul.
1
Obie są funkcjami C. Musi być NSString *jednak, jak powiedział @David.
Espresso
@Espresso na zdrowie Nie mam tła w C, więc teraz ma więcej sensu
Paul.s
2

Swift 3.0:

Int("5")

lub

let stringToConvert = "5"
Int(stringToConvert)
Josh O'Connor
źródło
1

To jest proste rozwiązanie do konwersji ciągu znaków na int

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

ale kiedy otrzymujesz wartość z pola tekstowego ,

int num = [txtField.text intValue];

gdzie txtField jest gniazdem UITextField

iAnkit
źródło
1

Musiałem zrobić coś takiego, ale chciałem użyć do mojego gettera / settera. W szczególności chciałem wrócić długo z pola tekstowego. Pozostałe odpowiedzi również działały dobrze, po prostu dostosowałem swoje trochę w miarę ewolucji mojego projektu szkolnego.

long ms = [self.textfield.text longLongValue];
return ms;
natur3
źródło
0
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Alexsander Akers
źródło
Używam danych pobranych z NSUserDefaults, więc co powinienem umieścić po NSString * string =
MacN00b
1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "YOUR_KEY"];
Benjamin Mayo
0

Bardzo łatwe..

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

Jakub
źródło
0

Jeszcze inny sposób: jeśli pracujesz z napisem w C, np. Const char *, C native atoi()jest wygodniejsze.

dotslashlu
źródło
0

Możesz również użyć takich jak:

NSInteger getVal = [self.string integerValue];

newbee
źródło
0

Aby przekonwertować liczbę typu String na liczbę Int , wykonaj następujące czynności:

let stringNumber = "5"
let number = Int(stringNumber)
Ale Mohamad
źródło
To jest dokładna kopia istniejącej odpowiedzi.
Pranav Kasetti