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