Aie ouais effectivement on n'en sait rien ça n'a pas été précisé.
Mais dans le cas ou il ne faudrait faire apparaître qu'une fois la lettre par groupe. Ce n'est pas tellement plus compliqué.
Je ferais comme ceci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import java.util.Random;
public String genereString(){
char[] tab = new char[6];
tab[0] = 'B';
tab[1] = 'J';
tab[2] = 'R';
tab[3] = 'M';
tab[4] = 'N';
tab[5] = 'V';
Random rnd = new Random();
StringBuffer appender = new StringBuffer(4); //Création du StringBuffer avec en paramètre sa capacité initiale.
LinkedList<Integer> listNbTires = new LinkedList();
while (appender.length() < 4) {
int nbTire = rnd.nextInt(6); //Si on veut qu'il tire des nombres jusqu'à 5 il faut lui mettre 6 en paramètre.
if (!listNbTires.contains(nbTire)) {
listNbTires.add(nbTire);
appender.append(tab[nbTire]);
}
}
return appender.toString();
} |
Maintenant je ne sais pas si c'est la méthode la plus rapide pour le faire, notamment le choix de la LinkedList par rapport à l'ArrayList, je me trompe quasi systématiquement pour l'emploi le plus judicieux.
A ce propos, je n'ai pas bien compris cette ligne de code, Deadpool:
StringBuffer appender = new StringBuilder();
C'était une faute de frappe ou intentionnel que tu mettes ces 2 types différents ?
Partager