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

Langage Java Discussion :

Utilisation de String.format() [FAQ]


Sujet :

Langage Java

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Par défaut Utilisation de String.format()
    Bonjour, je n'arrive pas à comprendre le fonctionnement du formatage des chaînes de caractères. Voici mon problème : je veux que le nombre 1234567 apparaisse sous la forme "1 234 567" avec des espaces tous les 3 chiffres. Je pense qu'il faut utiliser la fonction String.format() mais je ne m'en sort pas.

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Ce ne serait pas le formatage anglais pour les nombres ca?

    Edit: ben non après test c'est FRANCE, xD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Locale locale = Locale.FRANCE;
    String string = NumberFormat.getNumberInstance(locale).format(123456789);
    System.out.println(string);

  3. #3
    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
    Citation Envoyé par maxf1
    Ce ne serait pas le formatage anglais pour les nombres ca?
    Non c'est le formatage français... les anglais utilisent une virgule à la place de l'espace, et un point à la place de notre vigule, ce qui donnerait par exemple : 1,234,567.0

    a++

  4. #4
    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,

    En général il faut plutôt utiliser les NumberFormat pour le formattage des nombre, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	NumberFormat df = NumberFormat.getIntegerInstance(Locale.FRANCE);	
    	System.out.println( df.format(1234567) );
    L'utilisation de la locale implique d'utiliser les spécificités françaises. Si elle n'est pas précisé ce sont les spécificités de la langue du système qui seront utilisé...



    Tu peux aussi le faire avec format() qui utilise une syntaxe proche du printf() du C, en utilisant le caractère ',' pour "activer" le regroupement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	String s = String.format(Locale.FRANCE, "%,d", 1234567);
    	System.out.println(s);
    a++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Par défaut
    Finalement j'ai fini par trouver la réponse. Ca marche en utilisant NumberFormat et sa méthode setGroupingUsed() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int monNombre = (...)
    NumberFormat numberFormat = NumberFormat.getInstance();
    numberFormat.setGroupingUsed(true);
    String resultat = numberFormat.format(monNombre);
    EDIT : Je n'avais pas vu vos réponses, merci pour toutes ces précisions !

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

Discussions similaires

  1. Utilisation de String.format
    Par DevServlet dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2012, 10h33
  2. problème avec l'utilisation de string.format
    Par tupac25 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 26/04/2010, 11h52
  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