如何转换包含许多原始数据类型的 NSString
(例如 int
、float
、char
、unsigned int
等)?问题是,我不知道字符串在运行时会包含哪种数字类型。
我有一个想法,但我不确定这是否适用于任何类型,也适用于无符号和浮点值:
long long scannedNumber;
NSScanner *scanner = [NSScanner scannerWithString:aString];
[scanner scanLongLong:&scannedNumber];
NSNumber *number = [NSNumber numberWithLongLong: scannedNumber];
感谢您的帮助。
最佳答案
使用 NSNumberFormatter
:
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42"];
如果字符串不是有效数字,则 myNumber
将为 nil
。如果它是一个有效的数字,那么您现在拥有所有 NSNumber
的优点来确定它实际上是什么类型的数字。
https://stackoverflow.com/questions/1448804/