Converti array di byte in stringa esadecimale in Java
-
Metodo
HEX_ARRAY[]
per convertire un array di byte in una stringa esadecimale in Java -
Metodo
Hex.encodeHexString()
per convertire un array di byte in una stringa esadecimale in Java -
Metodo
DatatypeConverter()
per convertire array di byte in stringa esadecimale in Java -
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 {
public static void main(String[] args) {
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:
[83, 105, 109, 112, 108, 101, 84, 101, 115, 116, 105, 110, 103]
Hex String Conversion: 53696d706c6554657374696e67
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;
import javax.xml.bind.*;
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
- Concatena due array in Java
- Rimuovi i duplicati dall'array in Java
- Popolare un array in Java
- Ridimensiona un array mantenendo gli elementi correnti in Java
- Sposta un array in Java