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 :

Concaténation involontaire dans class Formatter


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Concaténation involontaire dans class Formatter
    Bonjour.
    Je souhaite avoir votre avis sur un affichage avec la classe Formatter, affichage qui me concatène les valeurs contenues dans un tableau.
    Cet affichage fonctionnait normalement quand j'utilisais un System.out.print mais je préfère utiliser un format %s pour améliorer ma présentation.

    Mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		String[][] Tab_RESULT;
    		Tab_RESULT = new String[100][20];
     
    Formatter fmt = new Formatter();
    J'y stocke des valeurs importantes pour plusieurs bases de données : nom, taille en Go, nb de files ...

    Ma boucle qui concatène à l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		for (boucle2=0;boucle2 <= nb_bases;boucle2++)
    		{
    				// BASE
    				//System.out.print(vide.substring(1, 20-Tab_RESULT[boucle2][0].length())+" | "+Tab_RESULT[boucle2][0]);
                         System.out.print(fmt.format("%s",Tab_RESULT[boucle2][0]));
    				System.out.println("\n");
    		}
    Le résultat :
    ======================
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BASE1
     
    BASE1BASE2
     
    BASE1BASE2BASE3
     
    BASE1BASE2BASE3BASE4
    etc
    ======================

    pour un attendu de

    ======================
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BASE1
    BASE2
    BASE3
    BASE4
    etc

    J'ai essayé d'utiliser fmt.flush(); sans succès.

    Merci pour votre aide.

    Théophanie

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


    C'est normal car tu réutilises le même formatter. Il permet de formatter des chaines complexes et chaque appel à format ajoutera le texte au formateur, qui est ensuite converti en String lorsqu'il est passé à print()...


    Utilise directement printf() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.printf("%s", Tab_RESULT[boucle2][0]);
    Et pour le saut de ligne n'utilise pas "\n" mais un println() vide, ou alors un "%n" avec les Formatter/printf()...
    La différence vient du fait de "\n" n'est pas portable alors que les autres solutions utilises la propriété "line.separator" qui varie selon le système (sauf erreur : "\n" sous Unix, "\r\n" sous Windows, "\r" sous MacOS)

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Merci
    En effet, à part une amélioration visuelle avec les décimaux, il n'y a plus de concaténation.

    Théophanie

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/02/2006, 16h59
  2. Concaténation PHP dans PHP
    Par tchoukapi dans le forum Langage
    Réponses: 2
    Dernier message: 27/11/2005, 19h30
  3. [Struts] request dans classes java
    Par mlequim dans le forum Servlets/JSP
    Réponses: 24
    Dernier message: 27/10/2005, 13h52
  4. [Language][class] classe dans classe
    Par Kenshiro1980 dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2005, 11h32
  5. Visibilité de methodes dans Classe de Class
    Par Math75 dans le forum C++
    Réponses: 9
    Dernier message: 28/09/2004, 12h48

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