Ввод контрольной цифры в форму ISBN 10

Я делаю сканер штрих-кода и делаю преобразование ISBN13 в ISBN10 в приложении. Теперь я мог вычислить контрольную цифру для ISBN 10, но я не знаю, как соединить ее обратно с 10-значным числом.

Что я сделал, так это удалил префикс «978» для штрих-кода 9780340961391, который затем оставил его с 0340961391, и я убрал только 9 цифр, оставив контрольную цифру 1 для ISBN 13, которая затем осталась с 034096139.

Затем я вычисляю контрольную цифру isbn10, которая равна 2. Теперь проблема в том, как мне добавить ее к 034096139, чтобы сформировать окончательный ISBN10 0340961392? Спасибо :)


person Community    schedule 10.08.2012    source источник
comment
Или для NSNumber theNSNumber = [номер NSNWithInt:[theNSNumber intValue] * 10 + цифра];   -  person Kalle    schedule 10.08.2012


Ответы (1)


Я предполагаю, что ваш ISBN13 представляет собой строку, и при добавлении контрольной цифры обратно к номеру SBN вы не захотите влиять на 9-значный номер. Я бы предложил:

/* SBNString = 034096139 */
NSString *ISBN10 = [NSString stringWithFormat:@"%@%u", SBNString, checkDigit];
person Rick    schedule 10.08.2012
comment
@Rick Большое спасибо, это здорово: D, но могу я спросить, что означает u в %@%u? Я понимаю, что d для целых чисел, но я не могу найти, что означает u. - person ; 10.08.2012
comment
@XUESNOW %u и %s называются токенами, которые используются для отображения различных типов данных — %s = строка, %d = целое число, %0 = восьмеричное, %x = шестнадцатеричное, %ld = longint, %lld longlongint и т. д. . Для лучшего понимания: %u похоже на int, беззнаковое основание 10. - person NSPunk; 10.08.2012
comment
@XUESNOW, как и то, что упоминал NSPunk,% u для целого числа без знака, но вы также можете использовать% d, если ваша контрольная цифра положительна. Обратите внимание, что если ваша контрольная цифра отрицательная, %d отобразит знак минус (-), %u отобразит очень большое значение. - person Rick; 10.08.2012
comment
@NSPunk, обратите внимание, что %@ для NSString, а %s для C-String. Для iOS, какао или Objective-C мы используем %@ большую часть времени. - person Rick; 10.08.2012
comment
Спасибо всем за вашу помощь! :) - person ; 10.08.2012