web-dev-qa-db-fra.com

Comment formater des nombres en chaînes hexagonales?

Je veux formater des nombres int comme chaînes hexadécimales. System.out.println(Integer.toHexString(1)); affiche 1 mais je le veux comme 0x00000001. Comment je fais ça?

16
Evgeniy Dorofeev

Essaye ça

System.out.println(String.format("0x%08X", 1));
38
Drogba

Vous pouvez utiliser String.format pour formater un entier sous forme de chaîne hexadécimale.

   System.out.println(String.format("0x%08X", 1));

C'est-à-dire, complétez avec des zéros et faites la largeur totale 8. Le 1 est converti en hexadécimal pour vous. La ligne ci-dessus donne: 0x00000001 et 

   System.out.println(String.format("0x%08X", 234));

donne: 0x000000EA

19
Vincent Ramdhanie

A partir de la syntaxe de formatage documentée sur le fichier Formatter class de Java:

Integer intObject = Integer.valueOf(1);
String s = String.format("0x%08x", intObject);
System.out.println(s);
2
Brent Worden

Je ne connais pas trop Java, mais il doit y avoir un moyen de remplir la sortie de la fonction toHexString avec un '0' d’une longueur égale à 8. Si "0x" sera toujours au début, cliquez simplement dessus. chaîne au début.

1
esteban

Vous pouvez utiliser une méthode Java.util.Formatter ou la méthode printf sur un flux d'impression.

0
Stephen P