Ola galera, sou iniciante em programação e não sei o que pode estar gerando a exceção java.lang.StackOverflowError no meu codigo. Me ajudem por favor, irei colocar o metodo que esta gerando isso no codigo abaixo.
public static Boolean isPalindromo(String original, int i, int j){
boolean resp = true;
if(j >= i){
if(original.charAt(i) != original.charAt(j)){
resp = false;
}
else{
resp = isPalindromo(original, i++, j--);
}
}
return resp;
}
eu tenho que verificar nessa questão se a string é um palindromo de forma recursiva.
No teu caso, i++ e j-- passam para o método o valor de i e j e em seguida incrementam ou decrementam o valor. Ou seja, estás sempre a invocar o método isPalindromo com os mesmos parâmetros.
Se trocares para resp = isPalindromo(original, ++i, --j); então o valor será alterado antes da invocação e terás o comportamento que pretendes.
Para evitar estes erros, e como não estás em nenhum loop e não vais utilizar o valor de i e j novamente, podes simplesmente fazer resp = isPalindromo(original, i+1, j-1);