0 votos
por (20 puntos) en Java
editado por

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");

        

}

}

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
0 respuestas
0 votos
3 respuestas
preguntado por Euler81 (60 puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
preguntado por Bafina (20 puntos) Ene 28, 2016 en Java
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...