Comment convertir un tableau d'octets en chaîne hexadécimale en Java

Asad Riaz 12 octobre 2023
  1. Méthode Hex.encodeHexString() pour convertir un tableau d’octets en chaîne hexadécimale en Java
  2. Méthode DatatypeConverter() pour convertir un tableau d’octets en chaîne hexadécimale en Java
  3. méthode append(.format) pour la conversion d’un tableau d’octets en chaîne hexadécimale en Java
Comment convertir un tableau d'octets en chaîne hexadécimale en Java

Dans ce tutoriel, nous verrons comment convertir un tableau d’octets en chaîne hexadécimale en Java.

Méthode Hex.encodeHexString() pour convertir un tableau d’octets en chaîne hexadécimale en Java

La première méthode pour convertir un tableau d’octets en chaîne hexagonale en Java est la méthode Hex.encodeHexString(). Comme il s’agit d’une bibliothèque commune d’apache, la méthode apache.commons.codec.binary.Hex() doit être importée en premier dans le compilateur.

Exemples de codes:

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));
  }
}

Production:

Byte Array: 
[83, 105, 109, 112, 108, 101, 84, 101, 115, 116, 105, 110, 103]
Hex String Conversion: 53696d706c6554657374696e67

Méthode DatatypeConverter() pour convertir un tableau d’octets en chaîne hexadécimale en Java

Une autre approche est la méthode javax.xml.bind.DatatypeConverter.printHexBinary() en Java. Cette méthode prend les octets et les convertit en hex à partir d’un tableau.

Exemples de codes:

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);
  }
}

Production:

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

méthode append(.format) pour la conversion d’un tableau d’octets en chaîne hexadécimale en Java

Une autre méthode qui peut être utilisée est d’inclure append(.format) en utilisant stringBuilder en Java. Elle fonctionne en convertissant chaque valeur d’un tableau d’octets et en convertissant une par une en chaîne hexadécimale en conséquence.

Exemples de codes:

import java.nio.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

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));
    String conversion = new String(byteArray);
    System.out.println(conversion);
    System.out.println("Hex String Conversion: " + display(byteArray));
  }
  public static String display(byte[] byteArray1) {
    StringBuilder stringBuilder = new StringBuilder();
    for (byte val : byteArray1) {
      stringBuilder.append(String.format("%02x", val & 0xff));
    }
    return stringBuilder.toString();
  }
}

Production:

Byte Array: 
[83, 105, 109, 112, 108, 101, 84, 101, 115, 116, 105, 110, 103]
SimpleTesting
Hex String Conversion: 53696d706c6554657374696e67

Article connexe - Java Array

Article connexe - Java String