Преобразование Unichar в Int Задача - PullRequest
7 голосов
/ 14 ноября 2010

У меня странная проблема при попытке конвертировать из unichar в int:

У меня есть строка, содержащая несколько чисел, например @"12345". Эти цифры я хочу сохранить индивидуально, то есть я хочу 5 цифр, 1, 2, 3, .... Сейчас пока

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

возвращает

Value: 1

Это:

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

возвращает

Value: 49

Я бы очень признателен за помощь, Фабиан

1 Ответ

10 голосов
/ 14 ноября 2010

В приведенном выше коде вы получаете именно то, что просите; числовое значение символа '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]);
}
...