我在NSString中有非常大的无符号整数。这可能很大到2 ^ 64。 是否有现有的函数/类解析这个?
据我所知,它是无符号长long值,但是,我很难知道应该使用哪种方法来解析它。
答案 0 :(得分:9)
也许不是最漂亮的答案,但你应该能够做到这样的事情:
#include <stdlib.h>
...
unsigned long long parsedValue = strtoull([yourString UTF8String], NULL, 0);
其他人可能有更多的可行方式。
答案 1 :(得分:1)
这是一个旧版本,但这里是斯蒂芬·佳能(正确)回答的一个稍微更可靠的变体:
#import <stdlib.h>
@implementation NSString (MyHelpers)
- (unsigned long long)unsignedLongLongValue {
return strtoull([self UTF8String], NULL, 0);
}
@end
现在所有字符串都会响应unsignedLongLongValue选择器。
答案 2 :(得分:0)
这可能有效,但只能到达2^63 - 1:
NSScanner *scanner = [NSScanner scannerWithString:numericString];
long long valueFromString;
if(![scanner scanLongLong:&valueFromString]) {
//ERROR
}
NSScanner似乎没有scanUnsignedLongLong方法。