Преобразование номера ISBN книги в шестнадцатеричный формат для записи в метки RFID

Я нахожусь в процессе записи значений ISBN на карты UHF RFID, так что мне нужно отсканировать штрих-код книги и получить ISBN, а затем мне нужно преобразовать этот ISBN (13-значное целое число) в шестнадцатеричное значение для записи в УВЧ RFID метки.

На данный момент я могу сканировать штрих-код и получать номер ISBN, но мне нужна помощь в преобразовании ISBN в шестнадцатеричное значение для записи в UHF RFID-теги в Java.

2 ответа

   BigInteger toHex=new BigInteger(dec,10);// use this to convert your number to big integer so that any number can be stored where dec is your input number in base 10 in string
     String s=toHex.toString(16);//convert your number into hexa string which can be directly stored in rfid tag

Вы можете использовать Long.valueOf (isbnString, 16). Создайте метод toHex и, если входная строка содержит "-" затем замените их пустой строкой, после чего создайте и верните номер. Обратите внимание, что Long.valueOf может бросить NumberFormatException Например

public static Long toHex(String isbn) {
    String temp = isbn;
    if (isbn.length() > 10) {
        temp = isbn.replaceAll("-", "");
    }

    return Long.valueOf(temp, 16);
}

public static void main(String[] args) {
        Long isbn1 = 9780071809L;
        Long isbn2 = 9780071809252L;

        System.out.println(toHex(isbn1.toString()));
        System.out.println(toHex(isbn2.toString()));
        System.out.println(toHex("978-0071809252"));
    }
Другие вопросы по тегам