boa tarde, sou novo em java e tenho uma atividade da faculdade para fazer, onde devo pegar uma String e verificar se ela é ou n palíndromo, porem quando executo o program ele me aparece o erro Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 3
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at PalindromoJava.isPalindromo(PalindromoJava.java:11)
at PalindromoJava.main(PalindromoJava.java:46).
Alguém pode me ajudar??
Meu código esta a seguir:
public class PalindromoJava {
public static boolean isPalindromo (String s){
boolean resp = false;
String aux = "";
for(int i = (s.length()-1); i >= 0; i++){
aux = aux + s.charAt(i);
}
for(int j = 0; j<s.length()-1; j++){
if(s.charAt(j) != aux.charAt(j)){
resp = false;
}else{
resp = true;
}
}
return resp;
}
public static boolean isFim(String s){
return (s.length() == 3 && s.charAt(0) == 'F' && s.charAt(1) == 'I' && s.charAt(2) == 'M');
}
public static void main(String[] args) {
/* Inicio - Leitura da entrada padrao */
String[] entrada = new String[1000];
int line = 0;
do {
entrada[line] = MyIO.readLine();
} while (isFim(entrada[line++]) == false);
line--; //Desconsiderar ultima linha contendo a palavra FIM
/* Fim - Leitura da entrada padrao */
for(int i = 0; i <= line; i++){
if(isPalindromo(entrada[i]) == true){
MyIO.println("Sim");
}else{
MyIO.println("Não");
}
}
}
}