Avatar ·

Comment convertir un tableau de bytes en chaîne hexadécimale en Java ?

Bonjour à tous ! Je suis débutant en Java et j'ai rencontré un problème : je dois convertir un tableau de bytes (byte[]) en une chaîne représentant la représentation hexadécimale (hex) de ces bytes. Par exemple, si j'ai un tableau byte[] {0x0A, 0xFF, 0x1B}, je veux obtenir la chaîne "0AFF1B". Le problème est que lorsque j'essaie de créer simplement une chaîne à partir du tableau de bytes avec new String(bytes), j'obtiens des caractères illisibles, pas une représentation hex. Je comprends que c'est incorrect car String attend des caractères encodés, pas des bytes arbitraires. J'ai écrit un code simple qui essaie de le faire manuellement : ```java public static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(Integer.toHexString(b & 0xFF)); } return sb.toString(); } ``` Mais il ne fonctionne pas correctement : pour les bytes avec une valeur de 0 à 15 (par exemple, 0x0A), il affiche seulement un caractère ("A") au lieu de deux ("0A"). De plus, si le byte est négatif (par exemple