Objective-c 将 NSString 转换为 NSInteger

Posted

技术标签:

【中文标题】Objective-c 将 NSString 转换为 NSInteger【英文标题】:Objective-c convert NSString into NSInteger 【发布时间】:2011-12-04 17:31:14 【问题描述】:

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

【问题讨论】:

所以你已经把数字中的空格替换为空了? 【参考方案1】:

做:

NSString *str = @"3 568 030";

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

输出

3568030

【讨论】:

【参考方案2】:

这是因为你的字符串中有空格,你必须先像这样删除空格:

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

NSInteger *value = [trimmedString intValue];

【讨论】:

修剪不会删除字符串中间的字符【参考方案3】:

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

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

【讨论】:

【参考方案4】:

首先,使用 :

删除原始字符串中的所有空格
NSString *trimmedString = [yourOriginalString stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceAndNewlineCharacterSet]];

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

【讨论】:

【参考方案5】:
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"42"];
[f release];

【讨论】:

以上是关于Objective-c 将 NSString 转换为 NSInteger的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C - NSInteger转换NSString

将 char* 解析为 NSString 在 Objective-C 的第一个新行处停止

转换的NSString的NSDictionary在Objective-C

如何将 Objective-C 的完成块转换为 Swift?

将objective-c代码转换为swift 4

将字符串转换为日期 Objective-C