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.

Odpowiedzi:



22

Co powiesz na

[@"7" intValue];

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

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

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

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


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


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;

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

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


0

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


0

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

NSInteger getVal = [self.string integerValue];


0

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

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

To jest dokładna kopia istniejącej odpowiedzi.
Pranav Kasetti
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.