Concaténation d'objets

Résolu
valgoku Messages postés 213 Statut Membre -  
valgoku Messages postés 213 Statut Membre -
Bonjour,

J'aimerai savoir s'il est possible de concaténer deux objets ?

Je m'explique :

public int verificationResultat(DeAJouer d1,DeAJouer d2,DeAJouer d3){
int chiffre=0;
int ok=0;
chiffre = Integer.valueOf("" + d1 + d2 + d3); <------ ICI PB !
if((chiffre == 124) || (chiffre == 142) || (chiffre == 214) || (chiffre == 241) || (chiffre == 412) || (chiffre == 421))
ok=1;
if((d1.getChiffre() == d2.getChiffre()) && (d2.getChiffre() == d3.getChiffre()))
ok=2;
if((chiffre == 211) || (chiffre == 311) || (chiffre == 411) || (chiffre == 511) || (chiffre == 611))
ok=3;
else{
ok = d1.getChiffre() + d2.getChiffre() + d3.getChiffre();
}
return ok;
}

Le but serait de prendre la valeur de d2, de la concaténer avec la valeur de d1, et apres de concaténer la valeur de d3 à la nouvelle valeur avec d2 et d1.

Or ce que je fais ici, cest une concaténation d'integer, or j'ai 3 objets appelés.

Le renvoie de la fonction importe peu, ca c'est pour moi !

et après je vérifie si "la nouvelle valeur" est égale à ...

Pourriez vous m'aider s'il vous plait ?

Merci d'avance !

ps : c'est un peu pressé ;)

7 réponses

  1. Groarh Messages postés 706 Statut Membre 185
     
    Implémente une fonction toString() sur ta classe DeAJouer.

    class DeAJouer {
    	
    	// ...
    	
    	public String toString() {
    		String s;
    		// ...
    		return s;
    	}
    }


    Normalement, le cast en String se fera tout seul après ça.

    ;)
    0
    1. valgoku Messages postés 213 Statut Membre 47
       
      je vais essayer merci !
      0
  2. valgoku Messages postés 213 Statut Membre 47
     
    J'ai ca maintenant :

    public int verificationResultat(DeAJouer d1,DeAJouer d2,DeAJouer d3){
    int ok=0;
    String nb;
    nb = "" + d1.toString() + d2.toString() + d3.toString();
    if((nb.equals("421")) || (nb.equals("412")) || (nb.equals("124")) || (nb.equals("142")) || (nb.equals("214")) || (nb.equals("241")))
    ok=1;
    if((d1.getChiffre() == d2.getChiffre()) && (d2.getChiffre() == d3.getChiffre()))
    ok=2;
    if((nb.equals("211")) || (nb.equals("311")) || (nb.equals("411")) || (nb.equals("511")) || (nb.equals("611")))
    ok=3;
    else{
    ok = d1.getChiffre() + d2.getChiffre() + d3.getChiffre();
    }
    return ok;
    }

    Mais je ne pense pas que ca marche car c'est comme si ca prenanit tjr la valeur du else, c'est à dire que les comparaisons ne marchent pas.

    La concaténation est elle bien faite ?
    0
  3. Groarh Messages postés 706 Statut Membre 185
     
    C'est bien simple : le dernier bloc if est le seul qui a un effet sur ok : si tu as deux as, ça fait « ok = 3 » ; dans tous les autres cas, ça fait la somme des chiffres.

    À mon avis, tu as oublié d'imbriquer tes if.

    ;)
    0
  4. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
     
    Pourquoi ne pas surcharger l'opérateur + ?
    0
    1. Groarh Messages postés 706 Statut Membre 185
       
      Parce que c'est du Java :P

      Enfin je crois... ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Groarh Messages postés 706 Statut Membre 185
     
    Valgoku,

    pourrais-tu nous donner le code de tes fonctions toString et getChiffre s'il-te-plaît ?
    0
  7. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
     
    Rien n'empêche la surcharge en java je me trompe?
    0
    1. Groarh Messages postés 706 Statut Membre 185
       
      Certes, mais pas sur les opérateurs.
      0
  8. valgoku Messages postés 213 Statut Membre 47
     
    C'est bon, j'ai finalement fini par trouver la solution.
    Un problème de else if corrigé :)
    Merci pour votre aide en tout cas !
    0