Concaténation d'objets
Résolu
valgoku
Messages postés
213
Statut
Membre
-
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é ;)
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
-
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.
;) -
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 ? -
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.
;) -
Pourquoi ne pas surcharger l'opérateur + ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Valgoku,
pourrais-tu nous donner le code de tes fonctions toString et getChiffre s'il-te-plaît ? -
Rien n'empêche la surcharge en java je me trompe?
-
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 !