JAVA - exception d'un caractère dans un scan
Fermé
bebel75
Messages postés
2
Date d'inscription
samedi 12 décembre 2009
Statut
Membre
Dernière intervention
12 décembre 2009
-
12 déc. 2009 à 16:40
danimo - 14 déc. 2009 à 20:58
danimo - 14 déc. 2009 à 20:58
A voir également:
- JAVA - exception d'un caractère dans un scan
- Waptrick java football - Télécharger - Jeux vidéo
- Caractère ascii - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
2 réponses
Utilisateur anonyme
12 déc. 2009 à 21:29
12 déc. 2009 à 21:29
Salut,
TABLEAU À 2 DIMENSIONS (RAPPEL)
utilisation d'un tableau à dimensions char [][] tableau ...:
- le premier [] doit contenir un numéro d'élément, donc une valeur de 0 à n (n < longueur du tableau).
-le deuxième [] doit contenir un numéro de dimension, donc pour un tableau à 2 dimensions, 0 ou 1.
exemple.
Maintenant pour que l'on puisse t'aider à traiter ton cas:
-il faudrait qu'on sache ce que tu entends par "si toutes les données du tableau sont similaires"
-similaires à quoi ?
-pourquoi initialiser à *
-quel type de données doivent entrer les utilisateurs sachant qu'ils ne peuvent qu'entrer des données qui doivent correspondre au type du tableau (char, String, int etc)
-tente d'être plus précis sur ce que tu dois faire
-un tableau de char n'est peut-être pas le bon choix mais peut-être que si
-unidimensionnel ou multidimensionnel
-et encore une fois: tout dépend de ce que tu dois faire, de ce que tu à le droit d'utiliser (si c'est un exo)
Cordialement,
Dan
TABLEAU À 2 DIMENSIONS (RAPPEL)
utilisation d'un tableau à dimensions char [][] tableau ...:
- le premier [] doit contenir un numéro d'élément, donc une valeur de 0 à n (n < longueur du tableau).
-le deuxième [] doit contenir un numéro de dimension, donc pour un tableau à 2 dimensions, 0 ou 1.
exemple.
char [][] tableau = { {'a', // elt 1 (1ier elt) de la dimension 1 >> [0][0] 'a'}, // elt 1 (1ier elt) de la dimension 2 >> [0][1] {'b', // elt 2 (2eme elt) de la dimension 1 >> [1][0] 'b'}, // elt 2 (2eme elt) de la dimension 2 >> [1][1] {'c', // elt 3 (3eme elt) de la dimension 1 >> [2][0] 'a'}, // elt 3 (1ier elt) de la dimension 2 >> [2][1] {'d', // elt 4 (4eme elt) de la dimension 1 >> [3][0] 'd'}, // elt 4 (4eme elt) de la dimension 2 >> [3][1] {'e', // elt 5 (5eme elt) de la dimension 1 >> [4][0] 'b'}, // elt 5 (5eme elt) de la dimension 2 >> [4][1] }; // Affichage: System.out.println(""); for(int i = 0; i < tableau.length; i++) { System.out.print("element " + (i+1) + " de la dim. 1: " + tableau[i][0]); System.out.println(""); System.out.println("element " + (i+1) + " de la dim. 2: " + tableau[i][1] + "\n"); } for(int i = 0; i < tableau.length; i++) { // le test ci-dessous // if (tableau[i][0] == tableau[i][1]) && tableau[i][0] == tableau[i][2]) // est impossible >> tableau[i][2] >> dimension 3 pour un tableau à 2 dimensions if (tableau[i][0] == tableau[i][1]) // && tableau[i][0] == tableau[i][2]) { System.out.println("i: " + i + " true"); } else System.out.println("i: " + i + " false"); }
Maintenant pour que l'on puisse t'aider à traiter ton cas:
-il faudrait qu'on sache ce que tu entends par "si toutes les données du tableau sont similaires"
-similaires à quoi ?
-pourquoi initialiser à *
-quel type de données doivent entrer les utilisateurs sachant qu'ils ne peuvent qu'entrer des données qui doivent correspondre au type du tableau (char, String, int etc)
-tente d'être plus précis sur ce que tu dois faire
-un tableau de char n'est peut-être pas le bon choix mais peut-être que si
-unidimensionnel ou multidimensionnel
-et encore une fois: tout dépend de ce que tu dois faire, de ce que tu à le droit d'utiliser (si c'est un exo)
Cordialement,
Dan
Utilisateur anonyme
12 déc. 2009 à 22:13
12 déc. 2009 à 22:13
Re,
Supposons que tu veuilles savoir si par exemple un String contient le caractère *
(Il y a, comme très souvent, plusieurs méthodes pour le savoir),
en voici une:
Dan
Supposons que tu veuilles savoir si par exemple un String contient le caractère *
(Il y a, comme très souvent, plusieurs méthodes pour le savoir),
en voici une:
int ind = 0; String unString = ""; unString = "* le gaulois"; //ou //unString = "Asterix le gaulois"; ind = unString.indexOf("*"); if (ind == -1) System.out.println("\nunString \"" + unString + "\" ne contient pas d'*"); else System.out.println("\nunString \"" + unString + "\" contient au moins un *");
Dan
Bonjour,
Merci en fait j'ai un tableau Morpion 3*3 initialisé avec des * dans les 9 cases.
J'ai crée une fonction qui va scanner le tableau pour voir si j'ai une ligne de O ou de X ... en revanche je ne veux pas que la fonction me découvre une ligne de * ....
c'est pour cela que je cherche qq chose de léger qui decouvre si 3 cases sont identiques EXCEPTE du caractere *
J'espere avoir été clair. D'avance, merci.
Merci en fait j'ai un tableau Morpion 3*3 initialisé avec des * dans les 9 cases.
J'ai crée une fonction qui va scanner le tableau pour voir si j'ai une ligne de O ou de X ... en revanche je ne veux pas que la fonction me découvre une ligne de * ....
c'est pour cela que je cherche qq chose de léger qui decouvre si 3 cases sont identiques EXCEPTE du caractere *
J'espere avoir été clair. D'avance, merci.
Salut,
Bon voici un petit exemple.
La méthode suivante permet de savoir s'il n'y a pas d'* dans l'un des 8 cas possibles de jeu:
-3 lignes (ligne1, ligne2, ligne3)
-3 colonnes (colon1, colon2, colon3)
-1 diagonale / (diago1)
-1 diagonale \ (diago2)
La méthode (une parmi d'autres):
On appelle cette méthode comme ceci:
L'exemple (c'est un programme à compiler et executer) pas très jojo mais je devais simuler quelques phases de jeu et détailler au maximum:
Bon voici un petit exemple.
La méthode suivante permet de savoir s'il n'y a pas d'* dans l'un des 8 cas possibles de jeu:
-3 lignes (ligne1, ligne2, ligne3)
-3 colonnes (colon1, colon2, colon3)
-1 diagonale / (diago1)
-1 diagonale \ (diago2)
La méthode (une parmi d'autres):
public static void suiteCouO(String suite, String nomSuite) // static car dans l'exemple qui suit, le traitement est fait dans la méthode main(...) { int nbreDeFois = 0; pattern = Pattern.compile("\\w"); //ce motif (\w) traite les lettres minus. et majus. // et les chiffes 0 a 9, donc pas les * matcher = pattern.matcher(suite); while(matcher.find()) { nbreDeFois++; } if(nbreDeFois == 3) // car il faut 3 non * pour que le cas soit retenu System.out.println("\nLa suite: " + suite + " (" + nomSuite + ") ne contient pas d'*"); }
On appelle cette méthode comme ceci:
suiteCouO(un_des_8cas, "nom_du_cas"); // exemple ...(ligne1, "ligne1"); ou ...(diago1, "diago1");
L'exemple (c'est un programme à compiler et executer) pas très jojo mais je devais simuler quelques phases de jeu et détailler au maximum:
import java.util.regex.*; public class Xyz { // utilisation d'un tableau de 2 dimensions // exemples: //String[][] tablo1 = new String[2][3]; // penser à une table de 2 lignes et 3 colonnes //String[][] tablo2 = new String[3][3]; // penser à une table de 3 lignes et 3 colonnes private static String [][] tableau = new String[3][3]; //le 1ier [3] indique le nombre de lignes, c'est en fait la longueur de la 1ere dimension. //le 2ième [3] indique le nombre de colonnes, c'est en fait la longueur de la 2eme dimension. private static String ligne1; // cas 1 private static String ligne2; // cas 2 private static String ligne3; // cas 3 private static String colon1; // cas 4 private static String colon2; // cas 5 private static String colon3; // cas 6 private static String diago1; // cas 7 private static String diago2; // cas 8 private static Pattern pattern; private static Matcher matcher; public static void initialiserTableau(String valInit) { for(int i = 0; i < tableau.length; i++) { tableau[i][0] = valInit; // ligne 1 colonne 0 tableau[i][1] = valInit; // ligne i colonne 1 tableau[i][2] = valInit; // ligne i colonne 2 } } public static void afficherTableau() { System.out.println("\n"); for(int i = 0; i < tableau.length; i++) { System.out.print("Ligne" + (i+1) + " " + tableau[i][0]); // ligne i colonne 0 System.out.print(tableau[i][1]); // ligne i colonne 1 System.out.println(tableau[i][2]); // ligne i colonne 2 } } public static void developperTableau() { // les 8 cas possibles: // -3 lignes de 3 cases // -3 colonnes de 3 cases // -1 diagonale (/) de 3 cases // -1 diagonale (\) de 3 cases ligne1 = ""; ligne2 = ""; ligne3 = ""; for(int i = 0; i < tableau.length; i++) { ligne1+= tableau[0][i]; ligne2+= tableau[1][i]; ligne3+= tableau[2][i]; } //System.out.println("\nLigne 1: " + ligne1); suiteCouO(ligne1, "ligne1"); //System.out.println("Ligne 2: " + ligne2); suiteCouO(ligne2, "ligne2"); //System.out.println("Ligne 3: " + ligne3); suiteCouO(ligne3, "ligne3"); colon1 = ""; colon2 = ""; colon3 = ""; for(int i = 0; i < tableau.length; i++) { colon1+= tableau[i][0]; colon2+= tableau[i][1]; colon3+= tableau[i][2]; } //System.out.println("\nColonne 1: " + colon1); suiteCouO(colon1, "colon1"); //System.out.println("Colonne 2: " + colon2); suiteCouO(colon2, "colon2"); //System.out.println("Colonne 3: " + colon3); suiteCouO(colon3, "colon3"); //diago1 (/) //diago2 (\) diago1 = tableau[2][0] + tableau[1][1] + tableau[0][2]; diago2 = tableau[2][2] + tableau[1][1] + tableau[0][0]; //System.out.println("\nDiagonale 1: " + diago1); suiteCouO(diago1, "diago1"); //System.out.println("Diagonale 2: " + diago2); suiteCouO(diago2, "diago2"); } public static void suiteCouO(String suite, String nomSuite) { int nbreDeFois = 0; pattern = Pattern.compile("\\w"); //ce motif (\w) traite les lettres minus. et majus. // et les chiffes 0 a 9, donc pas les * matcher = pattern.matcher(suite); while(matcher.find()) { nbreDeFois++; } if(nbreDeFois == 3) System.out.println("\nLa suite: " + suite + " (" + nomSuite + ") ne contient pas d'*"); } public static void main(String args[]) { //init. du tableau à "*"; initialiserTableau("*"); //affichage du tableau apres init. afficherTableau(); //simulation de l'entrée d'un "x" en ligne i colonne 0 tableau[1][0] = "x"; // ligne 1 colonne 0 //affichage du tableau apres modif. afficherTableau(); developperTableau(); //simulation de l'entrée d'un "o" en ligne i colonne 1 tableau[1][1] = "o"; // ligne 1 colonne 1 //affichage du tableau apres modif. afficherTableau(); developperTableau(); //simulation de l'entrée d'un "x" en ligne i colonne 2 tableau[1][2] = "x"; // ligne 1 colonne 2 //affichage du tableau apres modif. afficherTableau(); developperTableau(); tableau[0][0] = "o"; // ligne 0 colonne 0 afficherTableau(); developperTableau(); tableau[2][0] = "x"; // ligne 2 colonne 0 afficherTableau(); developperTableau(); tableau[2][2] = "o"; // ligne 0 colonne 0 afficherTableau(); developperTableau(); } } Cordialement, Dan