我尝试从unichar转换为int时出现了一个奇怪的问题:
我有一个包含几个数字的字符串,例如@"12345"
。这个数字我想单独保存,这意味着我想要5个数字,1,2,3,....现在,而
NSLog(@"Value: %C", [myString characterAtIndex:0]);
返回
Value: 1
此:
NSLog(@"Value: %@", [NSNumber numberWithUnsignedChar:[myString characterAtIndex:0]]);
返回
Value: 49
我非常感谢一些帮助,Fabian
答案 0 :(得分:10)
在上面的代码中,你得到的正是你所要求的;字符'1'
的数字值为49,您正在创建一个NSNumber。
如果您想要的是1
,那么您可以利用数字0-9在ASCII / UTF-8表中按顺序排列并从unichar中减去适当的值这一事实你收到了。
尝试使用此代码段,让您开始朝着正确的方向前进:
NSString *s = @"0123456789";
for (int i = 0; i < [s length]; i++) {
NSLog(@"Value: %d", [s characterAtIndex:i]);
}