Problème de remplissage d'un tableau
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:
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:
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();
}
} |
Code:
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.");
}
}
} |
Merci d'avance pour votre aide.