Hola buenas noches, soy estudiante de programacion tengo un ejercicio en el que tengo que sacar si una frase es palindroma o no, es decir que se lea del derecho o inverso del mismo modo. Tengo este codigo pero por algun motivo no me compara bien las palabras. Alguna idea ?
import java.util.Scanner;
public class Act5 {
public static void main(String[] args) {
Scanner lector = new Scanner(System.in);
lector.useDelimiter("\n");
System.out.println("Escribe una frase");
String frase = lector.next();
palindromo(frase);
lector.close();
}
public static void palindromo(String frase) {
//eliminamos espacios y caracteres para juntar la palabra.
String nospace = frase.replace(" ","").replace("!", "").replace("?", "").replace("¿", "").replace("#", "").replace("*", "")
.replace(",", "").replace(".", "").replace(":", "").replace("\n", "");
System.out.println(nospace);
//medimos el largo de la palabra sin espacios ni caracteres
int num =nospace.length();
//calculamos la mitad de la palabra sin la letra central que es comun
int mitad = num /2-1;
//primera mitad de la palabra
String primeramitad = nospace.substring(0,mitad);
//segunda mitad de la palabra
String mitad2= nospace.substring(mitad+1,num);
//giro de la palabra del reves
byte [] byteArray = mitad2.getBytes();
byte [] resultado = new byte [byteArray.length];
for (int i = 0; i<byteArray.length; i++) {
resultado[i] = byteArray[byteArray.length-i-1];
}
//conversion de byte a string
String segundamitad = new String(resultado);
String primeramitad2 = primeramitad+"\n";
//comparativa entre ambas palabras
if (primeramitad2.equals(segundamitad)) {
System.out.println("Es palindromo");
}
else
System.out.println("No es una palabra palindroma");
}
}