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

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 5
    Points
    5
    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 confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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
    Points : 556
    Points
    556
    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.
    Une réponse vous a aidé ? Votez pour !
    Vous n'avez plus de problème ? N'oubliez pas de le signaler !

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 5
    Points
    5
    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 confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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
    Points : 556
    Points
    556
    Par défaut
    Bah, justement, c'est bien à ce genre de chose que sert DecimalFormat...
    Tu as suivi mon lien ?
    Une réponse vous a aidé ? Votez pour !
    Vous n'avez plus de problème ? N'oubliez pas de le signaler !

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 5
    Points
    5
    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 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 5
    Points
    5
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 5
    Points
    5
    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)

  10. #10
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu compiles avec quoi ?

    Si c'est un EDI vérifies le niveau de conformité du compilateur.
    Si c'est directement javac indiques nous la version exacte (javac -version) et les options que tu utilises pour compiler.


    a++

  11. #11
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    Ca pourrait également venir d'un problème de configuration de ton projet

    Avec Eclipse, vérifie que dans les propriété de ton projet, dans "Java Compiler" tu as bien "Compiler compliance level" positionné à "1.5"

    Tu peux également vérifier si ce que je dis est correct en vérifiant que les bouts de code dont la syntaxe est spécifique à java 5 sont compilé correctement.
    (par exemple ajoute une ligne "java.util.List<Object> liste;". Si ca te donne une erreur c'est que ton projet est mal configuré)
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

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