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