7

我在尝试从 unichar 转换为 int 时遇到了一个奇怪的问题:

我有一个包含几个数字的字符串,例如@"12345". 我想单独保存这个数字,这意味着我想要 5 个数字,1、2、3、...。现在,虽然

NSLog(@"Value: %C", [myString characterAtIndex:0]);

返回

Value: 1

这个:

NSLog(@"Value: %@", [NSNumber numberWithUnsignedChar:[myString characterAtIndex:0]]);

返回

Value: 49

我真的很感激一些帮助,法比安

4

1 回答 1

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]);
}
于 2010-11-14T19:22:01.903 回答