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 :

Format Integer spécifique


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Par défaut Format Integer spécifique
    Bonjour à tous!

    Je voudrais avoir un format spécifique de Integer.
    Lorsque j'ai une unité (1 à 9 ) je voudrais obtenir le pattern 0#.
    Lorsque j'ai des dizaines (10 à 99 ) je laisse tel quel (10 à 99).
    J'ai essayé avec NumberFormat mais cela retourne un String. Il me faut absolument un Integer.

    Merci de vos réponses.

  2. #2
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour Asli bilal

    Je voudrais avoir un format spécifique de Integer.
    Il n'y a qu'un seul format possible pour in Integer, c'est le format binaire (la manière dont il est codé dans la mémoire).

    Quand tu dis
    Lorsque j'ai une unité (1 à 9 ) je voudrais obtenir le pattern 0#.
    Lorsque j'ai des dizaines (10 à 99 ) je laisse tel quel (10 à 99).
    Ceci est donc ton format d'affichage.

    Une méthode héritée du C serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String integerToDisplay = String.format("%02d",monInteger);
    mais en java, il doit y avoir mieux pour formatter l'affichage d'un nombre
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est bien un NumberFormat qu'il faut utiliser.

    Une chaîne a un format.
    Un Integer est juste un nombre, un nombre n'a pas de format. Les représentations d'un nombre ont un format. Or les représentations d'un nombre sont une suite de caractères, donc une chaîne. Donc si tu veux représenter un nombre selon un format particulier, il faudra utiliser une String, et donc passer par Number format. CQFD?

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Par défaut
    Merci,
    En fait je voudrais faire une opération simple.
    J'ai une heure (HH) que je rentre moi même (prompt) et une heure (HHmm) que je récupère d'un fichier.
    Mon heureEntrer est un Integer et mon heureFichier est un String (pour garder les formats HHmm p.e : 0005).
    J'utilise ces heures pour mes conditions.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(heureFichier.startsWith(heureEntrer+"05"))
    Cela fonctionne très bien pour les heures >= 10 mais pas lorsque j'entre 0# ou #. Ce test compare donc les heures du fichier qui commencent par #05. Il me faudrait comparé à 0#05.

    EDIT : OK je vais essayé de me débrouiller avec le NumberFormat alors.
    Merci de vos réponses

  5. #5
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Comme indiqué il faut formater ta chaine lorsque tu transformes ton int en String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // heureEntrer+"05"
    String.format("%02d05", heureEntrer);

    Maintenant il serait préférable de se faire une classe "Time" qui gérerait ce format...


    a++

  6. #6
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Citation Envoyé par Asli Bilal Voir le message
    Merci,
    En fait je voudrais faire une opération simple.
    J'ai une heure (HH) que je rentre moi même (prompt) et une heure (HHmm) que je récupère d'un fichier.
    Mon heureEntrer est un Integer et mon heureFichier est un String (pour garder les formats HHmm p.e : 0005).
    J'utilise ces heures pour mes conditions.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(heureFichier.startsWith(heureEntrer+"05"))
    Cela fonctionne très bien pour les heures >= 10 mais pas lorsque j'entre 0# ou #. Ce test compare donc les heures du fichier qui commencent par #05. Il me faudrait comparé à 0#05.

    EDIT : OK je vais essayé de me débrouiller avec le NumberFormat alors.
    Merci de vos réponses
    Si tu manipules des dates, il existe la classe SimpleDateFormat qui te permet de spécifier le format que tu souhaites. Ensuite, tu vas récupérer une date et du pourra comparer tout ce que tu souhaites en utilisant la classe Calendar.

    Si SimpleDateFormat ne te conviens pas, tu as toujours la possibilité d'implémenter ton propre DateFormat

  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
    Citation Envoyé par Asli Bilal Voir le message
    J'ai essayé avec NumberFormat mais cela retourne un String. Il me faut absolument un Integer.
    Un Integer n'a pas de format, un Integer n'est pas écrit. Un Integer est un nombre.
    La notion d'avoir un zéro devant ou pas, n'existe pas pour les nombres. 1 et 01 sont un seul et même nombre. On ne peut pas avoir l'un ou l'autre. Si on a l'un, c'est aussi l'autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Excel-VBA] Format conditionnelle spécifique
    Par MickaSch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2014, 20h08
  2. [AC-2000] forcer inputbox au format INTEGER
    Par gwems dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/10/2011, 10h17
  3. [XL-2003] format heure spécifique
    Par munity dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/08/2011, 15h15
  4. [E-03] Intégrer un format date spécifique dans une textBox
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/12/2008, 14h36
  5. Taille du format integer
    Par desbrandesq dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 30/05/2007, 10h17

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