Avatar ·

Cómo convertir un array de bytes a una cadena hexadecimal en Java?

¡Hola a todos! Soy nuevo en Java y me encontré con esta tarea: necesito convertir un array de bytes (byte[]) en una cadena que represente la representación hexadecimal (hex) de esos bytes. Por ejemplo, si tengo un array byte[] {0x0A, 0xFF, 0x1B}, quiero obtener la cadena "0AFF1B". El problema es que al intentar simplemente crear una cadena a partir del array de bytes usando new String(bytes), obtengo caracteres extraños, no la representación hex. Entiendo que esto es incorrecto, ya que String espera caracteres en una codificación, no bytes arbitrarios. Escribí un código simple que intenta hacerlo manualmente: ```java public static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(Integer.toHexString(b & 0xFF)); } return sb.toString(); } ``` Pero funciona incorrectamente: para bytes con valores de 0 a 15 (por ejemplo, 0x0A) imprime solo un carácter ("A"), no dos ("0A"). Además, si el byte es negativo (por ej