Как преобразовать байтовый массив в шестнадцатеричный формат в Java

Я знаю, что вы можете использоватьprintf а также использоватьStringBuilder.append(String.format("%x", byte)) преобразовать значения в значения HEX и отобразить их на консоли. Но я хочу иметь возможность на самом деле отформатировать массив байтов так, чтобы каждый байт отображался как HEX вместо десятичного числа.

Вот раздел моего кода, который у меня уже есть, который делает первые два способа, которые я сказал:

if(bytes > 0)
    {
        byteArray = new byte[bytes]; // Set up array to receive these values.

        for(int i=0; i 0)
            {
                byteArray[i] = (byte)Integer.parseInt(byteString, 16); // Parse value into binary data array.
            }
            else
            {
                System.out.println("String is empty!");
            }

            offSet += CHARSPERBYTE; // Set up for next word hex.    
        }

        StringBuilder sb = new StringBuilder();
        for(byte b : byteArray)
        {
            sb.append(String.format("%x", b));
        }

        byte subSystem = byteArray[0];
        byte highLevel = byteArray[1];
        byte lowLevel = byteArray[2];

        System.out.println("Byte array size: " + byteArray.length);
        System.out.printf("Byte 1: " + "%x", subSystem);
        System.out.printf("Byte 2: " + "%x", highLevel);
        System.out.println("Byte 3: " + lowLevel);
        System.out.println("Byte array value: " + Arrays.toString(byteArray));
        System.out.println("Byte array values as HEX: " + sb.toString());
    }
    else
    {
        byteArray = new byte[0]; // No hex data.

        //throw new HexException();
    }

    return byteArray;

Строка, которая была разделена на массив байтов, была:

"1E2021345A2B"

Но отображает это как десятичное число на консоли как:

"303233529043"

Может ли кто-нибудь помочь мне, как получить фактические значения в шестнадцатеричном виде и отображаться таким образом, естественно. Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос