Jak przekonwertować tablicę bajtów na format szesnastkowy w Javie

Wiem, że możesz użyćprintf a także używaćStringBuilder.append(String.format("%x", byte)) aby przekonwertować wartości na wartości HEX i wyświetlić je na konsoli. Ale chcę być w stanie sformatować tablicę bajtów, tak aby każdy bajt był wyświetlany jako HEX zamiast dziesiętnego.

Oto fragment mojego kodu, który już mam, który robi dwa pierwsze sposoby, które stwierdziłem:

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

        for(int i=0; i<bytes; i++)
        {
            byteString = hexSubString(hexString, offSet, CHARSPERBYTE, false); // Isolate digits for a single byte.
            Log.d("HEXSTRING", byteString);

            if(byteString.length() > 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;

Ciąg, który został podzielony na tablicę bajtów, był:

"1E2021345A2B"

Ale wyświetla go jako dziesiętny na konsoli jako:

"303233529043"

Czy ktokolwiek mógłby mi pomóc, jak uzyskać rzeczywiste wartości na heksie i być w ten sposób naturalnie wyświetlane. Z góry dziękuję.

questionAnswers(4)

yourAnswerToTheQuestion