"2e65"
в шестнадцатеричном формате представляет два байта (2e
, что соответствует 46
в десятичном формате, и 65
, что соответствует 101
в десятичном виде). Чтобы получить byte[]
, содержащий два байта, вы можете использовать BigInteger
:
String hex = "2e65";
byte[] b = new BigInteger(hex, 16).toByteArray();
System.out.println(Arrays.toString(b));
Вывод приведенного выше фрагмента:
[46, 101]
Если вместо этого, Вы хотите преобразовать каждую из четырех шестнадцатеричных цифр в byte
и сохранить их в byte[]
, затем вы можете использовать Character#digit
, перебирая каждую char
в String
:
String hex = "2e65";
byte[] b = new byte[hex.length()];
for (int i = 0; i < b.length; i++) {
b[i] = (byte) Character.digit(hex.charAt(i), 16);
}
System.out.println(Arrays.toString(b));
Вывод приведенного выше фрагмента:
[2, 14, 6, 5]