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 :

dans mon output [ affiche en plus


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut dans mon output [ affiche en plus
    bonjour
    j'ai essayé pg suivante c'est un exercice en COMPOSITION

    j'ai 2 problème:
    1er apparait apparait pendant j’écris mon code,
    dans la partir suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public Author[] getAuthorsName()
     {
         Author[]authorsName=new Author[2];
         authorsName[0]=Author.authors;
         authorsName[1]=Author.authors;
         return authorsName;
     }
    la deuxième après avoir l’exécuter:
    mon output est suivante
    Book name: java for dummy Author [name:Tan, gender:m, email: AhTeck@somewhere.com, nameaul, gender:m, emailaul@somewhere.com] price 19.99 qty 10

    il apparait "[" avant name et Paul@somwhere.com "]"
    comment les enlever? veuillez m'aidez svp,

    voilà mon prg complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    public class Author 
    {
     private String name;
     private char gender;
     private String email;
     
     public Author(String name,String email,char gender)
     {
    	 this.name=name;
    	 this.gender=gender;
    	 this.email=email; 
     }
     public String getName()
     {
    	 return this.name;
     }
     public String getEmail()
     {
    	 return this.email;
     }
     public void setEmail(String email)
     {
    	 this.email=email;
     }
     public char getGender()
     {
    	 return this.gender;
     }
     public String toString()
     {
    	 return("name:"+name+", gender:"+gender+", email:"+email);
     }
    }
     
    public class Book 
    {
     private String name;
     private Author[] authors;
     private double price;
     private int qty;
     
     public Book(String name,Author[] authors,double price)
     {
    	 this.name=name;
    	 this.authors=authors;
    	 this.price=price;
    	 this.qty=0;
     }
     public Book(String name,Author[]authors,double price,int qty)
     {
    	 this.name=name;
    	 this.authors=authors;
    	 this.price=price;
    	 this.qty=qty;
     }
     public String getName()
     {
    	 return this.name;
     }
     public Author[] getAuthors()
     {
    	 return this.authors;
     }
     public double getPrice()
     {
    	 return this.price;
     }
     public void setPrice(double price)
     {
    	 this.price=price;
     }
     public int getQty()
     {
    	 return this.qty;
     }
     public void setQty(int qty)
     {
    	 this.qty=qty;
     }
     public String toString()
     {
    	 return("Book name: "+name+" Author "+java.util.Arrays.toString(authors)+" price "+price+" qty "+qty);
     }
     public Author[] getAuthorsName()
     {
    	 Author[]authorsName=new Author[2];
    	 authorsName[0]=Author.authors;
    	 authorsName[1]=Author.authors;
    	 return authorsName;
     }
    }
     
    public class TestBook 
    {
    	public static void main(String[] args) 
    	{
    		Author[]authors=new Author[2];
    		authors[0]=new Author("Tan"," AhTeck@somewhere.com",'m');
    		authors[1]=new Author("Paul","Paul@somewhere.com",'m');
     
    		Book javaDummy=new Book("java for dummy",authors,19.99,10);
            System.out.println(javaDummy);
    	}
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour le problème des [ et ], cela vient de java.util.Arrays.toString(authors) : c'est comme ça que cette méthode génère la String pour afficher le tableau.

    Soit :
    • soit tu enlèves ces crochets simplement avec un substring. C'est le plus simple, la String générée ne devrait pas changer en théorie, mais si c'est le cas un jour dans une future version de Java, ça ne fonctionnera plus)
    • soit tu reconstruis toi-même la chaine, avec une boucle, un StringBuidler, tout ça
    • soit tu utilises un joining, en utilisant donc un stream : [c]Arrays.stream(authors).map(Author:toString).collect(Collectors.joining(", "));[c]


    Pour le premier problème, il n'y a aucune variable static authors dans la classe Author. Je ne sais pas trop ce que tu cherches à faire : tu créés un un tableau de 2 authors, pourquoi 2 et pas 1, 3, ou 42 ? Et ensuite tu voudrais y mettre je suppose des Authors du Book, mais s'il n'y en qu'un seul, que mettre dans le second, et s'il y'en a 3, lesquels mettre ?
    Si le but est de faire une copie du tableau, tu peux ça simplement par Arrays.copyOf().
    Si le but est de faire une méthode qui retourne uniquement le nom des auteurs, et donc un String[] pas un Author[], il te suffit de créer un tableau de la bonne taille String[] authorNames = new String[authors.length], de faire une boucle de type for(int i=0; i<authors.length; i++) et de copier le nom pour chacun avec authorNames[i]=author[i].getName();

Discussions similaires

  1. Aucun composant dans mon interface n'est plus reconnu!
    Par km200 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/06/2012, 10h37
  2. Les données ne s'affichent plus dans mon tableau
    Par mozambi dans le forum NetBeans
    Réponses: 2
    Dernier message: 08/03/2012, 15h44
  3. Réponses: 3
    Dernier message: 24/02/2006, 16h11
  4. Réponses: 7
    Dernier message: 02/09/2005, 16h15
  5. Réponses: 2
    Dernier message: 02/06/2005, 11h21

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