Objective-c将NSString转换为NSInteger

时间:2011-10-10 17:58:46

标签: objective-c string integer

我有这个小问题。当我有一个字符串“3 568 030”,我使用[myString intValue];它给我的结果只有3,问题是我想将整数转换成int / nsinteger。如果有任何帮助,字符串总是只包含数字。我尝试使用replaceoccurencesofstring(或名称是什么),它不知何故不起作用...
谢谢

5 个答案:

答案 0 :(得分:27)

执行:

NSString *str = @"3 568 030";

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

输出

3568030

答案 1 :(得分:7)

那是因为你的字符串上的空格你必须首先删除这些空格:

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

NSInteger *value = [trimmedString intValue];

答案 2 :(得分:2)

我的猜测是你错误地使用了stringByReplacingOccurencesOfString::

//Remove spaces.
myString = [myString stringByReplacingOccurencesOfString:@" " withString @""];
int myNumber = [myString intValue];

答案 3 :(得分:2)

首先,使用以下命令删除原始字符串中的所有空格:

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

然后,您可以将其转换为int / NSInteger。注意:使用[myString intValue]会将您的字符串转换为int,但[myString integerValue]会将其转换为NSInteger。

答案 4 :(得分:1)

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"42"];
[f release];