Concaténation d'objets

Résolu
valgoku Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   -  
valgoku Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   -
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

Groarh Messages postés 682 Date d'inscription   Statut Membre Dernière intervention   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
valgoku Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   47
 
je vais essayer merci !
0
valgoku Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   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
Groarh Messages postés 682 Date d'inscription   Statut Membre Dernière intervention   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
lucas06150 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   11
 
Pourquoi ne pas surcharger l'opérateur + ?
0
Groarh Messages postés 682 Date d'inscription   Statut Membre Dernière intervention   185
 
Parce que c'est du Java :P

Enfin je crois... ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Groarh Messages postés 682 Date d'inscription   Statut Membre Dernière intervention   185
 
Valgoku,

pourrais-tu nous donner le code de tes fonctions toString et getChiffre s'il-te-plaît ?
0
lucas06150 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   11
 
Rien n'empêche la surcharge en java je me trompe?
0
Groarh Messages postés 682 Date d'inscription   Statut Membre Dernière intervention   185
 
Certes, mais pas sur les opérateurs.
0
valgoku Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   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