Rechercher : dans
Par :

Affichage d'un int en java

Dernière réponse le 24 nov 2007 à 15:38:44 fizan, le 23 nov 2007 à 22:52:25 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 2.0.0.9

Meilleures réponses pour « affichage d'un int en java » dans :
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

Posotaz, le 24 nov 2007 à 00:29:03

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.

Répondre à Posotaz

2

fizan, le 24 nov 2007 à 10:06:46

Oki merci pour ton aide je pense que je vais finalement passer par un string pour afficher ^^

Répondre à fizan

3

vignemail1, le 24 nov 2007 à 15:05:36

System.out.printf("%06d",1) devrait faire l'affaire
Membre contributeur
Spécialisé réseaux, webmastering, programmation

Répondre à vignemail1

4

Posotaz, le 24 nov 2007 à 15:29:20

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/Systemoutprintf­03dinti.htm

Bref, ça reste "similaire" à la pratique du DecimalFormat mais c'est bien plus pratique pour un affichage direct dans une console. Ca alors ! :-)

Répondre à Posotaz

5

vignemail1, le 24 nov 2007 à 15:35:17

System.out est un PrintStream
regarde la méthode public PrintStream printf(String format,Object... args)
Membre contributeur
Spécialisé réseaux, webmastering, programmation

Répondre à vignemail1

6

 Posotaz, le 24 nov 2007 à 15:38:44

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).

http://java.sun.com/j2se/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.

Répondre à Posotaz