Bonjour,
Je dois effectuer un programme pour savoir si des mots/phrases sont des palindromes. Quand je lance mon programme j'ai l'erreur : "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5" qui s'affiche, et après plusieurs tests je crois que le tableau ne se remplie pas et je ne comprends pas pourquoi.
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 import static java.lang.System.*; public class Palindrome{ char [] pal; public Palindrome (int n){ pal = new char [n]; for (int i = 0; i<=n-1; i++){ pal[i] = utils.lireChar("Caractere ?"); } } public Palindrome (char [] p){ pal = p; } public boolean palindrome () { int i = 0; boolean erreur = false; for(i = 0; i<=(tab.length-1)/2; i++){ if (tab[i] != tab[tab.length-1-i]){ erreur = true; } } return (erreur); } public void afficher (){ out.println("Le mot/phrase est: "); for (int i=0; i<=pal.length; i++){ out.print(pal[i]); } out.println(""); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class utils { public static String lireChaine(String question) { InputStreamReader ir = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(ir); System.out.print(question); System.out.flush(); // vide le flot String reponse=""; try { reponse = br.readLine();; } catch (IOException ioe) { System.out.println("Erreur de saisie ..."); } return reponse; } public static int lireEntier(String question) { return Integer.parseInt(lireChaine(question)); } public static char lireChar(String question) { return String.valueOf(lireChaine(question)).charAt(0); } public static double lireReel(String question) { return Double.valueOf(lireChaine(question)).doubleValue(); } }Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import static java.lang.System.*; public class test { public static void main(String[] args) { Palindrome kayak; kayak = new Palindrome (5); out.println(" "); kayak.afficher(); if(kayak.palindrome()){ out.println("C'est un palindrome."); } else{ out.println("Ce n'est pas un palindrome."); } } }
Partager