Affichage d'un int en java [Fermé]

Signaler
-
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
-
Bonjour,

J'ai un probleme d'affichage pour un int en Java. En fait je voudrais afficher un int sur 6 chiffres.
Par exemple j'ai une variable:

int codebarre = 000001;
System.out.print(codebarre);

et je voudrais que ca affiche 000001 et pas une 1 à l'écran sachant que je j'aimerai autant que possible ne pas passer par un String. Si quelqu'un pouvai m'aiser ca serai génial ^^

merci

6 réponses

Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
218
Bonsoir,

Avec seul un type primitif entier c'est impossible à réaliser. A mon sens tu peux au maximum connaître le nombre de caractères occupés par le nombre en notation décimale en procédant par divisions (je donne juste l'idée) mais il n'empêche que pour l'affichage tu devras concaténer autant de 0 qu'il manque pour faire un total de 6 => String oblige

Je viens de tomber sur la présentation de la classe DecimalFormat (http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html), une petite recherche sur google devrait t'en montrer l'usage... mais aux mieux ça te renvoie un StringBuffer. =>toString() oblige

Le formatage d'un nombre passe obligatoirement par un String, tu n'as pas d'autre option... ça ne s'appellerait pas formatage sinon ;-) Sans compter que même un type primitif, à l'affichage (que ce soit dans la console ou dans un composant graphique) doit être transformé en String par un moyen ou un autre (faire "plop"+1 crée une chaîne "plop", transforme l'int 1 en String et les concatène), donc ne te prive pas d'utiliser un String c'est une classe incontournable.
oki merci pour ton aide je pense que je vais finalement passer par un string pour afficher ^^
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
257
System.out.printf("%06d",1) devrait faire l'affaire
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
218
Salut Vignemail1,

Je ne trouve pas de méthode printf(String format, int number) dans System.out... tu confonds peut-être avec le printf du C ?

EDIT : Au temps pour moi, ça existe bel et bien j'en reste sur le popotin on en apprend tous les jours ^^

Belle illustration ici :

http://www.java2s.com/Code/JavaAPI/java.lang/Systemoutprintf03dinti.htm

Bref, ça reste "similaire" à la pratique du DecimalFormat mais c'est bien plus pratique pour un affichage direct dans une console. Ca alors ! :-)
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
257
System.out est un PrintStream
regarde la méthode public PrintStream printf(String format,Object... args)
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
218
Ils ont dû oublier de la mettre dans la doc (enfin la 1.4.2) :

http://java.sun.com/j2se/1.4.2/docs/api/java/io/PrintStream.html

EDIT : Décidément c'est la journée des perles... si elle ne figure pas dans la 1.4.2 c'est qu'elle n'existait pas encore. Elle ne l'est qu'à partir de Java 5 (1.5).

https://docs.oracle.com/javase/1.5.0/docs/api/java/io/PrintStream.html

Donc voilà le débat se situe maintenant au niveau de la compatibilité avec les anciennes versions de la JVM.