Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1046 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] méthode toString

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] méthode toString

n°685749
gobbaf
Posté le 27-03-2004 à 23:53:31  profilanswer
 

Bonjour,
voilà je suis en train de me galérer sur la méthode toString :

Code :
  1. class FloatArray {
  2. int INVALID_PARAMETER;
  3. protected float[] _tab;
  4. public FloatArray(int size) {
  5.  this._tab=new float[size];
  6. }
  7. public boolean contains(float value) {
  8.  for (int i=0;i<_tab.length;i++)
  9.   if (_tab[i]==value) return true;
  10.  return false;
  11. }
  12. public float elementAt(int index) {
  13.  return _tab[index];
  14. }
  15. public int setElementAt(float val,int index) {
  16.  try{
  17.   _tab[index]=val;
  18.   return 0;
  19.  }catch (java.lang.ArrayIndexOutOfBoundsException e)
  20.   {System.out.println("Depassement des bornes du tableau" );
  21.   return INVALID_PARAMETER;}
  22. }
  23. public int size() {
  24.  return _tab.length;
  25. }
  26. public String toString() {
  27.  return _tab;
  28. }
  29. }


je n'arrive pas à construire la dernière méthode
je crois ne pas avoir bien compris le rôle de cette méthode (ça remplace bien System.out.println ?)
Fabien


Message édité par gobbaf le 27-03-2004 à 23:54:37
mood
Publicité
Posté le 27-03-2004 à 23:53:31  profilanswer
 

n°685751
Taz
bisounours-codeur
Posté le 27-03-2004 à 23:54:30  profilanswer
 

ça remplace, c'est utilisé : faut que tu renvoie une string qui corresponde à une représentation de ton objet

n°685752
gobbaf
Posté le 27-03-2004 à 23:57:51  profilanswer
 

Taz a écrit :

ça remplace, c'est utilisé : faut que tu renvoie une string qui corresponde à une représentation de ton objet


ça alors ?

Code :
  1. public String toString() {
  2.  return Float.toString(_tab);
  3. }


visiblement ça ne compile pas


Message édité par gobbaf le 27-03-2004 à 23:58:46
n°685753
Taz
bisounours-codeur
Posté le 27-03-2004 à 23:59:17  profilanswer
 

tu la sors d'ou cette méthode ?

n°685754
gobbaf
Posté le 27-03-2004 à 23:59:54  profilanswer
 

Taz a écrit :

tu la sors d'ou cette méthode ?


bah ne nulle part, j'essaie de la faire

n°685755
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:01:08  profilanswer
 

return "Prout" et commence à voir comment ça fonctionne quand tu fais un print

n°685756
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:01:46  profilanswer
 

sinon java.util ça te dit quelque chose ?

n°685757
gobbaf
Posté le 28-03-2004 à 00:04:33  profilanswer
 

Taz a écrit :

sinon java.util ça te dit quelque chose ?


Code :
  1. public String toString {
  2. return "toto";


ne renvoit rien lorsque je l'appelle du main

Code :
  1. t.toString();

n°685758
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:06:03  profilanswer
 

Systm.out.println(tonobjet);

n°685759
gobbaf
Posté le 28-03-2004 à 00:08:44  profilanswer
 

Taz a écrit :

Systm.out.println(tonobjet);


Code :
  1. public String toString() {
  2.  return System.out.printl(_tab);
  3. }


y'a quelquechose qui m'échappe  :heink:

mood
Publicité
Posté le 28-03-2004 à 00:08:44  profilanswer
 

n°685761
gobbaf
Posté le 28-03-2004 à 00:09:26  profilanswer
 

le probleme c'est que j'ai un tableau

n°685762
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:10:05  profilanswer
 

putain mais t'es le dernier des abrutis ou quoi ?

n°685763
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:10:16  profilanswer
 

Taz a écrit :

return "Prout" et commence à voir comment ça fonctionne quand tu fais un print

n°685765
nraynaud
lol
Posté le 28-03-2004 à 00:12:59  profilanswer
 

Taz > bon courage.


---------------
trainoo.com, c'est fini
n°685768
gobbaf
Posté le 28-03-2004 à 00:30:12  profilanswer
 

merci à toi
j'espère pas être le dernier des abrutis  [:tuffgong]
 

Code :
  1. public String toString() {
  2.  String s = "Le tableau a les valeurs suivantes : ";
  3.  for (int i=0;i<_tab.length;i++)
  4.   s = s+" "+_tab[i];
  5.  return s;
  6. }


+ System.out.println(monobjet)
 
désolé d'être si bête mais je ne l'avais pas encore vu
Fabien

n°685770
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:34:32  profilanswer
 

tip of the day : lire les conventions de codage Java
http://java.sun.com/docs/codeconv/ [...] C.doc.html
 
le _ est pas très apprécié, ni en C/C++ d'ailleurs

n°685771
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:34:57  profilanswer
 

et jète un oeil aux StringBuffer, c'est bien plus efficace

n°685775
gobbaf
Posté le 28-03-2004 à 00:51:12  profilanswer
 

Taz a écrit :

et jète un oeil aux StringBuffer, c'est bien plus efficace


Code :
  1. public String toString() {
  2. String s = new StringBuffered().append("Le tableau a les valeurs suivantes : " ).toString();
  3. for (int i=0;i<_tab.length;i++)
  4. s = s.append(" " ).append(_tab[i]).toString();
  5. return s;
  6. }


un truc de ce style?


Message édité par gobbaf le 28-03-2004 à 00:51:33
n°685776
nraynaud
lol
Posté le 28-03-2004 à 00:51:28  profilanswer
 

Taz a écrit :

et jète un oeil aux StringBuffer, c'est bien plus efficace

[+1] et j'aurais bien aimé retrouver le système printOn:/printString de smalltalk !


---------------
trainoo.com, c'est fini
n°685778
Taz
bisounours-codeur
Posté le 28-03-2004 à 00:57:57  profilanswer
 

ben non, tu fais n'importe quoi là
tu crées un seul StringBuffer, tu append, et une seule fois à la fin, tu extrait la String sous-jacente

n°685782
gobbaf
Posté le 28-03-2004 à 01:04:46  profilanswer
 

Code :
  1. StringBuffered s = new StringBuffered().append("Le tab" );
  2.  for (int i=0;i<_tab.length;i++) {
  3.   s=s.append(" " );
  4.   s=s.append(_tab[i]);
  5.  }
  6.  s=s.toString();
  7. return s;


n°685783
Taz
bisounours-codeur
Posté le 28-03-2004 à 01:05:55  profilanswer
 

StringBuffered ? non mais t'es sur que tu compile la ou quoi ?

n°685796
gobbaf
Posté le 28-03-2004 à 01:16:28  profilanswer
 

Code :
  1. StringBuffer s = new StringBuffer().append("Le tab" );
  2.  for (int i=0;i<_tab.length;i++) {
  3.   s=s.append(" " );
  4.   s=s.append(_tab[i]);
  5.  }
  6.  String s2=s.toString();
  7. return s2;


pourquoi est-ce plus efficace?
(sinon désolé mais je suis un peu fatigué)

n°685799
Taz
bisounours-codeur
Posté le 28-03-2004 à 01:22:59  profilanswer
 

parce que les String sont immutables

n°685801
gobbaf
Posté le 28-03-2004 à 01:32:36  profilanswer
 

pourtant on peut faire ça sur un String :

Code :
  1. String s = "a"+"b"+1;
  2. s = s+2;
  3. System.out.println(s);
  4. // ça donne bien ab12 à l'éxécution


 
ça y est : java compile un nouveau String à chaque fois qu'il rencontre " "  


Message édité par gobbaf le 28-03-2004 à 01:34:26
n°685803
Taz
bisounours-codeur
Posté le 28-03-2004 à 01:34:31  profilanswer
 

oui et ?

n°685805
R3g
fonctionnaire certifié ITIL
Posté le 28-03-2004 à 01:40:33  profilanswer
 

c'est moi ou Joce a rajouté des mots clés pour la coloration syntaxique ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°685806
Taz
bisounours-codeur
Posté le 28-03-2004 à 01:42:51  profilanswer
 

Code :
  1. export explicit restricted interface extends implements throws
  2. "chaine de caractères"

tiens le explicit me parait nouveau. tu vois quoi toi ?


Message édité par Taz le 28-03-2004 à 01:43:26
n°685809
gobbaf
Posté le 28-03-2004 à 01:46:47  profilanswer
 

je ne vois pas pourquoi ceci :

Code :
  1. StringBuffer s = new StringBuffer().append("Le tab" );
  2. for (int i=0;i<_tab.length;i++) {
  3.   s=s.append(" " );
  4.   s=s.append(_tab[i]);
  5. }
  6. String s2=s.toString();
  7. return s2;


est plus efficace que ceci :

Code :
  1. String s = new String().concat("Le tab" );
  2.  for (int i=0;i<_tab.length;i++) {
  3.   s=s.concat(" " );
  4.   s=s.concat(Float.toString(_tab[i]));
  5.  }
  6.  return s;


 
cependant merci de répondre à mes questions, j'ai appris pas mal de choses aujourd'hui
 [:org%40n]

n°685811
Taz
bisounours-codeur
Posté le 28-03-2004 à 01:50:20  profilanswer
 

mais le voilà notre fameux gagnant dans la catégorie "incompréhension total du système de typage et méconnaissance des types de bases en java"

n°685813
R3g
fonctionnaire certifié ITIL
Posté le 28-03-2004 à 01:52:13  profilanswer
 

gobbaf a écrit :

je ne vois pas pourquoi ceci :

Code :
  1. StringBuffer s = new StringBuffer().append("Le tab" );
  2. for (int i=0;i<_tab.length;i++) {
  3.   s=s.append(" " );
  4.   s=s.append(_tab[i]);
  5. }
  6. String s2=s.toString();
  7. return s2;


est plus efficace que ceci :

Code :
  1. String s = new String().concat("Le tab" );
  2.  for (int i=0;i<_tab.length;i++) {
  3.   s=s.concat(" " );
  4.   s=s.concat(Float.toString(_tab[i]));
  5.  }
  6.  return s;


 
cependant merci de répondre à mes questions, j'ai appris pas mal de choses aujourd'hui
 [:org%40n]  

Dans le deuxième solution, à chaque concat un nouvel objet String est alloué pour contenir le résultat. C'est parce que String est immutable. Mais comme dit Taz, faudrait reprendre les bases là.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°685815
gobbaf
Posté le 28-03-2004 à 01:56:19  profilanswer
 

donc s+"toto" == s.concat("toto" )
du coup un nouveau String est alloué
dans ce cas-là j'ai à peu près compris


Message édité par gobbaf le 28-03-2004 à 01:56:52
n°685816
Taz
bisounours-codeur
Posté le 28-03-2004 à 01:57:58  profilanswer
 

gobbaf a écrit :


du coup un nouveau String est alloué

y a pas de du coup, c'est systématique, vu que les java.lang.String sont immutables

n°685818
gobbaf
Posté le 28-03-2004 à 03:02:39  profilanswer
 

ok

n°700310
pascal34
one point !
Posté le 15-04-2004 à 15:59:44  profilanswer
 

gobbaf a écrit :

le probleme c'est que j'ai un tableau


 
La méthode toString() sert à avoir une représentation chaîne de caractère d'un objet.
Pour certains objets c'est utile pour d'autre ça l'est moins.
 
Si tu l'as crée pas elle est héritée.


Message édité par pascal34 le 15-04-2004 à 16:00:49
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] méthode toString

 

Sujets relatifs
méthode optimisée d'écriture dans un fichier logLaTeX interprété par Java
java et les imgComment savoir si une application Java est déjà lancée
Post de NB : importer/exporter des donnés avec MYSQL/JAVAComment faire un refresh ou un reload en Java ?
Une Methode de Detection optimale et implementable sous OpenGL?help morpion graphique java
Code java !!![Java] Synchronization de thread
Plus de sujets relatifs à : [JAVA] méthode toString


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR