Pregunta

Estoy tratando de crear un directorio con el nombre del valor absoluto de la versión hexadecimal de una URL hash, utilizando el método HASH () incorporado de la clase de cadena.Ahora es posible que el hash () produzca un resultado negativo, y un nombre de directorio que comienza con un signo menos es algo difícil de manejar, por eso necesito el valor absoluto de esto.Sin embargo, no puedo averiguar cómo obtener el valor absoluto de la versión hexadecimal de la cadena de URL hashed.

¿Fue útil?

Solución

¡El valor hexagonal nunca tiene un signo negativo!Es solo la representación hexadecimal del patrón de broca de los dos de los dos.

System.out.println(Integer.toHexString(-1)); // ffffffff
System.out.println(Integer.toHexString(Integer.MIN_VALUE)); // 80000000

Al igual que su madre, siempre le dijo: "Eres perfecto, tal como eres":

String dirname = Integer.toHexString(dirname.hashCode()); // never has minus sign

Otros consejos

Cobranelo a un largo, máscara los 32 bits superiores, luego convertirlo a una cadena.

 long longHash = intHash;
 long nonNegativeLongHash = longHash & ((1L << 32) - 1);
 String unsignedHex = Long.toHexString(nonNegativeLongHash);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top