Преобразование строки в int


87

У меня проблемы с преобразованием строки в целое число. Я погуглил, но все, что я могу найти, это как преобразовать int в строку. Кто-нибудь знает, как сделать наоборот? Спасибо.

Ответы:



22

Как насчет

[@"7" intValue];

Кроме того, если вы хотите, NSNumberвы можете сделать

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

6
Господи, NSNumberFormatter сложен ... я имею в виду "полная функция".
Дэйв Допсон

4
Будьте осторожны - в iOS7, numberFromStringпохоже, это метод экземпляра, а не класс , поэтому вам следует это сделать [[NSNumberFormatter new] numberFromString:@"7"];.
mgarciaisaia 06

@mgarciaisaia, разве мы не должны поступать [[[NSNumberFormatter alloc] init] numberFromString:@"7"];согласно stackoverflow.com/questions/719877/…
Майкл Ософски

3

Я использую:

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

Наоборот:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

1
проверьте возвращаемое значение. NSString *
AWF4vk 09

Я использую данные, извлеченные из NSUserDefaults, так что я должен поставить после NSString * string =
MacN00b

Будет ли что-то из этого работать? Конечно , эти определения должны с запятой или вы будете врезаться с , unrecognized selectorпотому что вы на самом деле будете посылать @selector(intToString:)не @selector(intToString). Конечно, это должно быть так, - (NSInteger) stringToInt:(NSString *)string;и- (NSString *)intToString:(NSInteger)integer;
Paul.s 09

1
Это обе функции C. NSString *Хотя это должно быть , как сказал @David.
Эспрессо

@Espresso приветствует, у меня нет опыта в C, так что теперь имеет больше смысла
Paul.s


1

Это простое решение для преобразования строки в int

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

но когда вы получаете значение из текстового поля, тогда

int num = [txtField.text intValue];

где txtField - выход UITextField


1

Мне пришлось сделать что-то подобное, но я хотел использовать геттер / сеттер. В частности, я хотел вернуть длинный текст из текстового поля. Другие ответы тоже сработали, я просто немного адаптировал свой по мере развития моего школьного проекта.

long ms = [self.textfield.text longLongValue];
return ms;

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

Я использую данные, извлеченные из NSUserDefaults, так что я должен поставить после NSString * string =
MacN00b

1
NSString * строка = [[NSUserDefaults standardUserDefaults] stringForKey: @ "ВАШ_КЛЮЧ"];
Бенджамин Мэйо


0

Еще один способ: если вы работаете со строкой C, например const char *, C native atoi()более удобен.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.