Maison >Java >javaDidacticiel >Comment convertir efficacement un tableau d'octets en hexadécimal en Java ?

Comment convertir efficacement un tableau d'octets en hexadécimal en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 02:49:09437parcourir

How to Efficiently Convert a Byte Array to Hexadecimal in Java?

Conversion d'un tableau d'octets en hexadécimal en Java

On peut rencontrer une situation où il faut convertir un tableau d'octets en valeurs hexadécimales correspondantes. Java fournit une méthode simple pour réaliser cette conversion efficacement.

Implémentation Java

L'approche la plus concise pour convertir un tableau d'octets en hexadécimal consiste à utiliser la classe StringBuilder :

byte[] bytes = {-1, 0, 1, 2, 3 };
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
    sb.append(String.format("%02X ", b));
}
System.out.println(sb.toString());

Ce code parcourt chaque octet du tableau, le convertit en une chaîne hexadécimale avec des zéros non significatifs (X) et l'ajoute à la chaîne constructeur. La chaîne résultante contient les valeurs hexadécimales séparées par des espaces.

Interprétation alternative

Certains scénarios peuvent nécessiter la conversion d'un tableau de chaînes de valeurs décimales en chaînes hexadécimales. Cela peut être réalisé comme suit :

String[] arr = {"-1", "0", "10", "20" };
for (int i = 0; i < arr.length; i++) {
    arr[i] = String.format("%02x", Byte.parseByte(arr[i]));
}
System.out.println(java.util.Arrays.toString(arr));

Ce code convertit chaque chaîne du tableau en octet, puis utilise la méthode String.format pour créer une chaîne hexadécimale avec des zéros non significatifs.

Considérations

Notez que Integer.toHexString(int) peut également être utilisé, mais soyez prudent quant à l'extension de signe lorsque vous travaillez avec des valeurs d'octets négatives. Alternativement, la solution String.format est plus fiable et flexible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn