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. 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 !
  2. 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. 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. Pourquoi ne pas surcharger l'opérateur + ?
        1. Parce que c'est du Java :P

          Enfin je crois... ?
      2. Valgoku,

        pourrais-tu nous donner le code de tes fonctions toString et getChiffre s'il-te-plaît ?
        1. Rien n'empêche la surcharge en java je me trompe?
          1. Certes, mais pas sur les opérateurs.
        2. 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 !