Conversion int => String sans perte de 0

Fermé
JojO - 27 sept. 2009 à 15:29
 JojO - 27 sept. 2009 à 21:20
Bonjour,
Voici mon probleme,

langage de programmation : Java
Type de conversion : String => int
Probleme : Comment faire la conversion sans perte de 0 non significatifs
exemple : int n = 003
System.out.print(n); // conversion implicite en String donc 3 !
//Comment pouvoir afficher "003" ?

3 réponses

dsl du double post ;

merci d'avance ^^
0
moderno31 Messages postés 872 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
27 sept. 2009 à 17:54
Hello,
Tu nas pas une fonction de style str_pad, int_pad (php) ou (coalese sous server server) qui permet de compléter la chaine.
Si j'obtiens 3, je transforme pour avoir 003. Parce que notre taille maxi de longueur est 3. Si on obtient 599, il ne se passe rien !
Je te laisse che'rche je ne connias pas java
0
merci de ta reponse,
j'ai cherché un peu par moi même et j'ai finalement trouvé.

Voici la reponse pour ceux qui a l'avenir aurait le meme problème :

int n = 3;
System.out.printf (" %03d ", n);

explication : fonction printf => sert a formater un String
%d sert a ecrire une variable de type int (ici n)
le 03 signifie :
- 3 => ecrit 3 caracteres
- 0 remplace les blancs par des 0


maintenant si vous desirez representer un objet en surchargant la methode toString de la classe Object :

par exemple un numero de compte:

public class Compte {
private int agence; // int de 3 chiffres
private int compte; // int de 7 chiffres
private int controle; // int de 2 chiffres

je vous laisse imaginer le constructeur

public String toString () {
return String.format("%03d-%07d-%02d", agence, compte, controle);
//utilisation de la fonction format de la classe String
}



ainsi dans votre main, vous pourrez ecrire :
Compte monCompte = new Compte();
System.out.println ( compte );

// affichera xxx-xxxxxxx-xx

bye et merci
0