Преобразование номера 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"));
}