Objective-c конвертировать NSString в NSInteger - PullRequest
11 голосов
/ 10 октября 2011


У меня есть маленькая проблема. Когда у меня есть строка «3 568 030», и я использую [myString intValue]; это дает мне результат всего 3, проблема в том, что я хочу преобразовать целое число в int / nsinteger. Строка всегда содержит только номер, если это поможет. Я попытался использовать replaceoccurencesofstring (или как это называется), и это как-то не сработало ...
Спасибо

Ответы [ 5 ]

27 голосов
/ 10 октября 2011

Do:

NSString *str = @"3 568 030";

int aValue = [[str stringByReplacingOccurrencesOfString:@" " withString:@""] intValue];
NSLog(@"%d", aValue);

вывод

3568030

7 голосов
/ 10 октября 2011

То есть из-за пробелов в вашей строке вам сначала нужно будет удалить пробелы, как показано ниже:

NSString *trimmedString = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];

NSInteger *value = [trimmedString intValue];
2 голосов
/ 10 октября 2011

Сначала удалите все пробелы в исходной строке, используя:

NSString *trimmedString = [yourOriginalString stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceAndNewlineCharacterSet]];

Затем вы можете преобразовать его в int / NSInteger.будьте осторожны: использование [myString intValue] приведёт вашу строку к int, но [myString integerValue] приведёт к NSInteger.

2 голосов
/ 10 октября 2011

Я предполагаю, что вы используете stringByReplacingOccurencesOfString:: неправильно.

//Remove spaces.
myString = [myString stringByReplacingOccurencesOfString:@" " withString @""];
int myNumber = [myString intValue];
1 голос
/ 11 октября 2011
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"42"];
[f release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...