Converti array di byte in stringa esadecimale in Java

  1. Metodo HEX_ARRAY[] per convertire un array di byte in una stringa esadecimale in Java
  2. Metodo Hex.encodeHexString() per convertire un array di byte in una stringa esadecimale in Java
  3. Metodo DatatypeConverter() per convertire array di byte in stringa esadecimale in Java
  4. append(.format) Metodo per la conversione di un array di byte in una stringa esadecimale in Java

In questo tutorial impareremo come convertire un array di byte in una stringa esadecimale in Java.

Metodo HEX_ARRAY[] per convertire un array di byte in una stringa esadecimale in Java

Il primo metodo con cui inizieremo, per questa conversione useremo HEX_ARRAY[] composto da tutti i possibili valori esadecimali. Questo metodo è più veloce di qualsiasi altra alternativa.

Codici di esempio:

public class SimpleTesting {
    char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
    byte b[]= new byte[2];
    b[0] = 20;
    b[1] = 10;
    char[] hexChars = new char[b.length * 2];
    for (int j = 0; j < b.length; j++) {
        int v = b[j] & 0xFF;
        hexChars[j * 2] = HEX_ARRAY[v >>> 4];
        hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
    }
        System.out.println(hexChars);
 }
}

Produzione:

140A

Metodo Hex.encodeHexString() per convertire un array di byte in una stringa esadecimale in Java

Il secondo metodo per convertire un array di byte in una stringa esadecimale in Java è il metodo Hex.encodeHexString(). Poiché è una libreria comune di apache, quindi il metodo apache.commons.codec.binary.Hex() deve essere importato prima all’interno del compilatore.

Codici di esempio:

import java.util.Arrays;
import org.apache.commons.codec.binary.Hex;

public class SimpleTesting {
    public static void main(String[] args) {
        byte[] byteArray = new byte[]
        {'S', 'i', 'm', 'p', 'l', 'e', 'T', 'e', 's',
        't', 'i', 'n', 'g'};
        System.out.println("Byte Array: "); 
        System.out.println(Arrays.toString(byteArray));
        System.out.println("Hex String Conversion: " +
                          Hex.encodeHexString(byteArray));
    }
}

Produzione:

Byte Array: Simple Testing
Hex String Conversion: 53696d706c652054657374696e67

Metodo DatatypeConverter() per convertire array di byte in stringa esadecimale in Java

Un altro approccio è il metodo javax.xml.bind.DatatypeConverter.printHexBinary() in Java. Questo metodo prende i byte e li converte in Hex da un array.

Codici di esempio:

import java.util.Arrays;

public class SimpleTesting {
    public static void main(String[] args) {
       byte byteArray[] = 
       {(byte)00, (byte)10, (byte)20, (byte)30, (byte)40};
       String hexString = 
           javax.xml.bind.DatatypeConverter
           .printHexBinary(byteArray);
       System.out.println("Byte Array: "); 
       System.out.println(Arrays.toString(byteArray));
       System.out.println("Hex String Conversion: "
                          + hexString);
    }
}

Produzione:

Byte Array: 
[0, 10, 20, 30, 40]
Hex String Conversion: 000A141E28

append(.format) Metodo per la conversione di un array di byte in una stringa esadecimale in Java

Un altro metodo che può essere utilizzato è includere append(.format) utilizzando stringBuilder in Java. Funziona convertendo ogni singolo valore da array di byte e uno per uno in stringa esadecimale di conseguenza.

Codici di esempio:

public class SimpleTesting {
    public static void main(String[] args) {
        byte a[]= new byte[2];
        a[0] = 20;
        a[1] = 10;
        StringBuilder sb = new StringBuilder(a.length * 2);
        for(byte b: a)
            sb.append(String.format("%02x", b));
        System.out.println(sb); 
    }
}

Produzione:

140a

Articolo correlato - Java Array

  • Ordina array 2D in Java
  • Controlla se un array contiene Int in Java
  • Articolo correlato - Java String

  • Converti oggetto in stringa in Java
  • Converti una stringa in un Int in Java