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:
Zobacz odwołanie do klasy NSString .
NSString *string = @"5";
int value = [string intValue];
Co powiesz na
[@"7" intValue];
Dodatkowo, jeśli chcesz, NSNumber
możesz to zrobić
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];
numberFromString
wydaje się być metodą instancji , a nie klasową , więc powinieneś to zrobić [[NSNumberFormatter new] numberFromString:@"7"];
.
[[[NSNumberFormatter alloc] init] numberFromString:@"7"];
zgodnie ze stackoverflow.com/questions/719877/…
Używam:
NSInteger stringToInt(NSString *string) {
return [string integerValue];
}
I wzajemnie:
NSString* intToString(NSInteger integer) {
return [NSString stringWithFormat:@"%d", integer];
}
unrecognized selector
ponieważ 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;
NSString *
jednak, jak powiedział @David.
Swift 3.0:
Int("5")
lub
let stringToConvert = "5"
Int(stringToConvert)
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;
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Jeszcze inny sposób: jeśli pracujesz z napisem w C, np. Const char *, C native atoi()
jest wygodniejsze.
Aby przekonwertować liczbę typu String na liczbę Int , wykonaj następujące czynności:
let stringNumber = "5"
let number = Int(stringNumber)