Trouver un charactère dans un tableau....[résolu] [Java] - Java - Programmation
Marsh Posté le 02-05-2005 à 11:28:54
boolean contains(char c, char[] array) {
for (int i = 0; i < array.length; i++) {
if (c == array[i]) {
return true;
}
}
return false;
}
ou bien,
boolean contains(char c, String s) {
return (s.indexOf(c) != -1);
}
ou encore autre chose.
Marsh Posté le 02-05-2005 à 11:35:35
Merci pour ta réponse, mais pourrais-tu l'expliquer un peu ???
Est-il possible de faire :
Code :
|
Marsh Posté le 02-05-2005 à 11:40:23
frenchlover a écrit : Merci pour ta réponse, mais pourrais-tu l'expliquer un peu ???
|
C'est possible, mais à mon avis tu n'auras pas le résultat escompté : il va imprimer un message pour chaque lettre testée.
En plus ce sera toujours la première lettre, et ta boucle est infinie.
Marsh Posté le 02-05-2005 à 11:45:27
Ouais, j'ai vu ça et je viens de corriger :
Code :
|
Le fait qu'il me renvoie un message à chaque fois, c'est pas grave pour l'instant. C'est juste pour tester la méthode compareTo pour voir si ça peut marcher.
Seulement, là il me dis à la ligne 16 que je cite "char cannot be deferenced". Qu'est ce que cela veut dire et comment le changer ???
Marsh Posté le 02-05-2005 à 11:56:08
Tu fais "lettre.[qqchose]" où lettre est de type char, c'est pas possible. Utilise l'une des méthodes qu'on t'a donné plus haut. Si tu tiens vraiment à utiliser compareTo (mais c'est idiot) : Character.toString(lettre).compareTo(tableauMot[y]) [...].
Marsh Posté le 02-05-2005 à 11:56:28
Tu ne peux pas utiliser de méthode sur un type primitif.
Ton algorithme est trop long par rapport à ton besoin. Je propose :
Code :
|
Mais est-ce vraiment ce que tu veux, i.e. imprimer le résultat le chaque test.
Marsh Posté le 02-05-2005 à 12:03:49
Non, le but final sera de comparer le caractère tapé par le joueur avec le tableau de caractère du mot généré par l'ordi afin de voir si le caractère est bon ou pas.
Là, c'était juste pour tester la méthode compareTo. Si vous dites que c'est pas une bonne solution, je n'ai aucune objection pour changer.
Je veux bien utiliser les méthodes de Cherrytree, mais je comprend pas trop comment elles marchent.
En gros, on teste le caractère 'c' avec le tableau [array] et on regarde si 'c' se trouve dedans et on sort si il si trouve. C'est ça ???
boolean contains(char c, char[] array) {
for (int i = 0; i < array.length; i++) {
if (c == array[i]) {
return true;
}
}
return false;
}
Mais si jamais le caractère y est 2 fois ??? Par exemple "cacao". Le deuxième 'c' ne sera pas identifié, exact ???
Marsh Posté le 02-05-2005 à 12:10:34
frenchlover a écrit : |
Tu as tout compris.
On peux modifier pour s'adapter à ce nouveau besoin.
Code :
|
Celle-ci te retourne le nombre d'occurences de c dans array.
Marsh Posté le 02-05-2005 à 12:21:15
Pourquoi est-ce qu'il me demande un ; à la ligne 5 ???
Code :
|
Tiens, je vais également essayer ta 3ème solution avec le nombre d'occurence.
Marsh Posté le 02-05-2005 à 12:30:04
frenchlover a écrit : Pourquoi est-ce qu'il me demande un ; à la ligne 5 ??? |
Parce que tu essaies de définir une méthode dans une autre, c'est syntaxiquement incorrect...
Marsh Posté le 02-05-2005 à 12:36:02
frenchlover a écrit : Pourquoi est-ce qu'il me demande un ; à la ligne 5 ???
|
Ta syntaxe est mauvaise. La déclaration de la méthode contains est mal construite. Je propose :
Code :
|
Il va te falloir creuser plus profondément le langage, car manifestement tu es encore trop léger.
Marsh Posté le 02-05-2005 à 12:36:20
Oui, je viens de m'en rendre compte en testant l'autre méthode. Mille excuses pour mon incapacité... Snif, mais j'essai de m'améliorer...
Je pense que cela devrait mieux marcher comme ça :
Code :
|
Marsh Posté le 02-05-2005 à 12:37:13
Ah, ben zut grillé par cherrytree...
Marsh Posté le 02-05-2005 à 12:40:13
En tout cas, merci beaucoup pour vos précieux conseils.
Je me permet humblement de préciser que je ne fais du java que depuis 4 ou 5 tp en classe et que je cherche à allez un peu plus vite que de simple "retourner les nombres pairs dans l'intervalle..."
Effectivement, je dois bosser ma syntaxe... Mais, bon la faim m'a déconcentrer
Je pense que je devrais pouvoir continuer mon programme maintenant.
Encore une fois, merci.
Marsh Posté le 25-04-2014 à 09:39:13
est-ce que quelqu'un peut m'aider sur mon code java, je veux parcourir un tableau qu'un utilisateur a entré et puis l'interroger après 3 saisie un
nombre , et le programme indique si ce dernier est inclus dans le tableau,
Marsh Posté le 02-05-2005 à 11:22:55
Salut à tous,
j'essai de faire un jeu du pendu. Donc, j'ai ma chaine de caractère correspondant au mot à trouver et j'ai mon charactère que la personne à taper.
J'aimerais savoir comment faire pour vérifier que le charactère se trouve (ou pas) dans le tableau.
J'ai vu dans la doc java la méthode compareTo(Character anotherCharacter).
Est-ce la méthode à utiliser ou y a-t-il mieux ?
Merci pour vos conseils à un newbie...
Message édité par frenchlover le 02-05-2005 à 14:37:00
---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile