Concaténation d'objets

Résolu
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. 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 !
    1. Rien n'empêche la surcharge en java je me trompe?
      1. Certes, mais pas sur les opérateurs.
    2. Valgoku,

      pourrais-tu nous donner le code de tes fonctions toString et getChiffre s'il-te-plaît ?
      1. Pourquoi ne pas surcharger l'opérateur + ?
        1. Parce que c'est du Java :P

          Enfin je crois... ?
      2. 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.

        ;)
        1. 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 ?
          1. 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.

            ;)
            1. je vais essayer merci !