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 :

Formater une chaine de caractère [Débutant(e)]


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2
    Par défaut Formater une chaine de caractère
    Bonjour,
    je débute en java et la POO.
    J'ai un problème avec la méthode System.out.printf .
    En effet, si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.printf("%6.2f\n",this.m );
    je n'ai pas de problème, mais je veux insérer ceci dans ma méthode toString(), mais ça donne une erreur .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     public String equation()
        {
        double b =  this.p.getY() - ( this.m * this.p.getX() );
           //System.out.printf("%6.2f\n",this.m ); // ça marche mais c'est pas ce que je veux
         incompatible types?
         //String eq = (" y = " +System.out.printf("%6.2f\n", this.m) +  "x + " + b); //Ca ne marche pas 
        String eq = (" y = " + this.m +  "x + " + b);
        return eq;
        }
    J'ai même essayé 'instruction suivante mais ca donne une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String S = new String();
    S = System.out.printf("%6.2f\n",this.m); //ça donne une erreur Incompatible types
    Merci de m'aider .

  2. #2
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    ca ne marche pas naturellement parce que System.out.printf() retourne un PrintStream qui n'est pas compatible avec le type String.

    tu peu faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     DecimalFormat df = new DecimalFormat("######.00");
    System.out.println(df.format(ton_nombre));
    ton code sera comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public String equation()
    {
    double b = this.p.getY() - ( this.m * this.p.getX() );
    DecimalFormat df = new DecimalFormat("######.00");
    String eq = (" y = " + df.format(this.m)+ "x + " + b);
    return eq;
    }
    et et tu peux tjrs consulter l'excellente FAQ Java
    http://java.developpez.com/faq/java/...langage_chaine

    j'espère que ca va t'aider

  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
    Salut,

    Tu peux également utiliser String.format() pour utiliser la syntaxe du printf pour générer une String (bref l'équivalent du sprintf() du C, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public String equation() {
    	double b =  this.p.getY() - ( this.m * this.p.getX() );
     
    	return " y = " + String.format("%6.2f\n", this.m) +  "x + " + b;
    }

    A noter que tu devrais remplacer le \n par %n. En effet le premier n'est pas portable et devrait être remplacer par la valeur retournée par System.getProperty("line.separator"), ce qui est fait par le %n du format/printf...

    De même puisque tu utilises format/printf autant le faire complètement et éviter de multiple concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public String equation() {
    	double b =  this.p.getY() - ( this.m * this.p.getX() );
     
    	return String.format(" y = %6.2f%nx + %f", this.m, b);
    }
    a++

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2
    Par défaut merci
    merci pour ta réponse.

    J'ai essayé et ça marche.

Discussions similaires

  1. [11gR1] Une regex pour formater une chaine de caractères
    Par akkyshan dans le forum PL/SQL
    Réponses: 6
    Dernier message: 11/02/2014, 17h27
  2. Réponses: 4
    Dernier message: 24/10/2011, 12h17
  3. Réponses: 2
    Dernier message: 09/04/2010, 12h02
  4. Analyser une chaine de caractère et la formater
    Par saad.hessane dans le forum C
    Réponses: 10
    Dernier message: 19/07/2008, 17h07
  5. Réponses: 3
    Dernier message: 01/02/2006, 18h26

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