IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

String Format et Padding


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut String Format et Padding
    Bonsoir,
    je cherche à convertir un entier en une chaine de 7 caractères de long remplie à gauche par des 0. Après avoir lu la doc, j'ai utilisé la méthode String.format() que j'ai trouvé sur un forum.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int number = 123;
    String digits = String.format("%07d", number);
    De fait ça ne marche pas car le second paramètre doit être de type Object. Comment m'en sortir ?

    Merci de votre aide.

  2. #2
    Membre chevronné
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 158
    Par défaut
    Citation Envoyé par solar-one Voir le message
    ça ne marche pas car le second paramètre doit être de type Object
    Pour représenter un entier avec un objet, il y a la classe Integer.

    Cependant, ici tu devrais sans doute utiliser la classe DecimalFormat, prévue spécialement pour formater les nombres décimaux, plutôt que StringFormat.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Salut sucreglace (marrant !).
    Je ne veux pas formater un nombre décimal, je voudrais transformer un entier du style 1234 en une chaine de caratères de 7 de long remplie par des zéros à gauche pour obtenir : 0001234

  4. #4
    Membre chevronné
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 158
    Par défaut
    Bah, justement, c'est bien à ce genre de chose que sert DecimalFormat...
    Tu as suivi mon lien ?

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par solar-one Voir le message
    De fait ça ne marche pas car le second paramètre doit être de type Object. Comment m'en sortir ?
    Euh... Chez moi ça marche très bien.

    Depuis Java 1.5, l'auto-inbox se charge de convertir implicitement le int en Integer, ce qui en fait un sous-type d'Object et répond aux contraintes.
    Et String.format() n'existe que depuis Java 1.5

    Tu es sûr qu'il y a un problème ?

    Citation Envoyé par solar-one Voir le message
    Je ne veux pas formater un nombre décimal, je voudrais transformer un entier du style 1234 en une chaine de caratères de 7 de long remplie par des zéros à gauche pour obtenir : 0001234
    ... Ce que l'on appelle, communément, "formater un nombre décimal" d'une manière précise. Mais bon, String.format() est quand même plus pratique, pour ça et si on en fait pas des millions en boucle (un NumberFormat est bien plus efficace.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Salut Thelvin, content de te revoir,
    Oui pour moi normalement ça marche depuis la 1.5 c'est bien ce que j'avais compris aussi. Si ça se trouve c'est encore une "fausse" erreur comme celle que tu m'as trouvée l'autre fois avec mes exceptions non catchées .... ! mais la il me dit bien que le type Object n'est pas compatible avec le type int de number

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Et tout le reste compile très bien ?

    On peut avoir une capture d'écran de la première erreur visible ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Suis en build automatically. Les erreurs que je vois c'est dans le correcteur de syntaxe, resultats de compilation ? ... Pour l'instant je ne tape que du code source je n'ai pas encore compilé, à moins qu'eclipse le fasse tout seul avec l'option citée ci-dessus.
    le message que j'ai est :
    The method format(String,Object[]) in the type String is not applicable for the arguments (String, int)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Oui c'est bien ça le message d'erreur issu de la compilation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The method format(String, Object[]) in the type String is not applicable for the arguments (String, int)

Discussions similaires

  1. [C#]String.Format avec un Array
    Par backseatgreg dans le forum C#
    Réponses: 11
    Dernier message: 27/11/2005, 17h22
  2. [c#] string.Format argggggg
    Par the_bmo dans le forum C#
    Réponses: 6
    Dernier message: 04/11/2005, 16h06
  3. [VB.NET] StringBuilder Vs String.Format
    Par maitrebn dans le forum Windows Forms
    Réponses: 6
    Dernier message: 19/10/2004, 18h58
  4. [C#] String.Format
    Par alexischmit dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2004, 11h58
  5. [VC++ .NET] String::Format({?}, ...
    Par benoitB dans le forum MFC
    Réponses: 2
    Dernier message: 15/12/2003, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo