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
![Converti array di byte in stringa esadecimale in Java](/img/Java/feature-image---How-to-convert-byte-array-in-hex-string-in-Java.webp)
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