Vérifier la présence d'un int dans un string

Résolu/Fermé
AlexStudent - 7 nov. 2016 à 11:26
 AlexStudent - 9 nov. 2016 à 13:34
Bonjour,

J'ai un travail à faire qui consiste à générer des nombres aléatoires allant de 1 à 5 et ( ex: 21453 ). J'utilise la méthode math.random et mon intention est d'appeler, à chaque nouveau chiffre généré, une méthode qui regarde si le chiffre est déjà présent dans un string que j'aurai initialisé, si OUI on ne le prend pas et on génère un autre nombre aléatoire entre 1 et 5 et si NON on met ce chiffre dans le string et on génère un autre nombre aléatoire, et bien sûr une fois que le string contient 5 chiffres on arrête tout et on return le string.

La seule chose qui me manque c'est savoir comment passer en revue un string pour voir si le chiffre généré en fait parti ou pas, quelqu'un saurait-il m'aider svp? Merci d'avance.

A voir également:

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
7 nov. 2016 à 17:30
Bonjour,

En complément de la réponse e Whismeril je rajouterai que manipuler un String n'est pas viable. Les nombres de 1 à 5 c'est un cas très particulier mais si on reprends le problème pour aller de 1 à 20 par exemple ça ne fonctionne plus avec un String car il y a plusieurs chiffres à prendre en compte pour les nombres.
La bonne solution est de manipuler directement des int soit dans un tableau soit dans une collection et d'opérer le mélange par permutations successives.

Remarque : Math.random n'est pas forcément la meilleure méthode dans ton cas, la classe Random fourni des méthodes plus utiles comme par exemple nextInt.
1
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
7 nov. 2016 à 13:15
Bonjour

deux solutions qui marchent quoique tu veuilles tirer au sort sans doublon (jeu de cartes, numéro de 1 à 5, loto , membres d'un jury etc....)

Tu crées et remplies une collection avec tous les éléments possiblement tirés au sort (une List par exemple qui contiendrait 1, 2, 3, 4 et 5).
  • Option1
    • dans une boucle plusieurs fois de suite (à toi de voir combien de fois), tu génères aléatoirement deux index de 0 à 4 et tu inverse la place des 2 éléments. Ceci fonctionne aussi avec un tableau.
  • Option2
    • dans une boucle qui dure tant que la collection contient des éléments, tu génères aléatoirement un index entre 0 et le nombre d'éléments actuels de la collection. Tu ajoutes l'élément correspondant à l'index dans une seconde collection et tu l'enlèves de la première.


Une fois que tu as ta collection mélangée, tu en fait un string.

PS, je ne code pas en Java, donc je ne te montrerais pas de code, mais je lis suffisamment le Java pour savoir que mes deux options sont possibles.
0
Merci pour vos réponses, j'ai fait avec un tableau et ça fonctionne parfaitement. :)
0