Acortando el número hexadecimal mediante la eliminación de ceros a la izquierda en Java

La casualidad empuje:

Tengo el número hexadecimal disponible en cadena y quiero acortarlo mediante la eliminación de ceros a la izquierda. Necesito hacerlo en Java

Por ejemplo :

0000000000000000000000000A000000   -> 0x0A000000
0x0000000000000000000000000A000000 -> 0x0A000000

000000000000000000000000C0A80000   -> 0xC0A80000
0x000000000000000000000000C0A80000 -> 0xC0A80000

Actualmente por debajo de código produce una excepción NumberFormatException

System.out.println(Long.toHexString(Long.parseLong("0x0000000000000000000000000A000000")));
Eran :

No está utilizando Long.parseLongcorrectamente.

Debería ser:

System.out.println(Long.toHexString(Long.parseLong("0000000000000000000000000A000000",16)));

sino que dará lugar a

a000000

Lo cual no es exactamente lo que quería.

Vas a tener que añadir un nuevo formato para obtener la salida exacta que quería:

String shortHex = Long.toHexString(Long.parseLong("0000000000000000000000000A000000",16)).toUpperCase ();
String formatted = (shortHex.length () % 2 == 0 ? "0x":"0x0") + shortHex;
System.out.println (formatted);

Ahora, la salida será:

0x0A000000

Si la entrada se inicia con "0x", que tendrá que recortar ese prefijo antes de llamar parseLong.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223854&siteId=1
Recomendado
Clasificación