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

87

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

MacN00b
источник

Ответы:

22

Как насчет

[@"7" intValue];

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

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];
Paul.s
источник
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
2

Swift 3.0:

Int("5")

или

let stringToConvert = "5"
Int(stringToConvert)
Джош О'Коннор
источник
1

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

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

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

int num = [txtField.text intValue];

где txtField - выход UITextField

iAnkit
источник
1

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

long ms = [self.textfield.text longLongValue];
return ms;
natur3
источник
0
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Александр Акерс
источник
Я использую данные, извлеченные из NSUserDefaults, так что я должен поставить после NSString * string =
MacN00b
1
NSString * строка = [[NSUserDefaults standardUserDefaults] stringForKey: @ "ВАШ_КЛЮЧ"];
Бенджамин Мэйо
0

Очень просто..

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

Джейкоб
источник
0

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

доцлашлу
источник
0

Вы также можете использовать как:

NSInteger getVal = [self.string integerValue];

новичок
источник
0

Чтобы преобразовать число String в Int , вы должны сделать это:

let stringNumber = "5"
let number = Int(stringNumber)
Але Мохамад
источник
Это точная копия существующего ответа.
Пранав Касетти