В Java часто возникает задача преобразования строкового представления шестнадцатеричного дампа в байтовый массив. Допустим, есть строка «00A0BF», которую необходимо преобразовать в байтовый массив следующего вида:
byte[] {0x00,0xA0,0xBf}
Это может потребоваться, например, при работе с шифрованием, хэшированием или при передаче данных в бинарном формате.
Существует несколько подходов к решению этой проблемы. Однако, начинающим разработчикам Java может быть сложно понять их без конкретных примеров и объяснений.
Один из подходов — это использование класса BigInteger
. Но он может показаться излишне сложным и громоздким, особенно при работе с большими данными.
Более элегантное и простое решение — использование стандартной библиотеки Java. Для этого можно воспользоваться методом DatatypeConverter.parseHexBinary
.
Вот пример кода:
import javax.xml.bind.DatatypeConverter; public class Main { public static void main(String[] args) { String hexString = "00A0BF"; byte[] byteArray = DatatypeConverter.parseHexBinary(hexString); for(byte b: byteArray) { System.out.println(b); } } }
В этом коде сначала импортируется класс DatatypeConverter
. Затем в строке String hexString = "00A0BF";
задается строка, представляющая шестнадцатеричный дамп. Далее, с помощью метода parseHexBinary
этот дамп преобразуется в байтовый массив. Наконец, в цикле for
этот массив выводится на экран.
Таким образом, преобразование строкового представления шестнадцатеричного дампа в байтовый массив в Java можно выполнить достаточно просто и элегантно с помощью стандартной библиотеки.
Добавить комментарий