Hola a todos, hoy os voy a explicar como indicar si una palabra es un palíndromo o no.
Un palíndromo es aquellas palabras que se leen igual de izquierda a derecha que de derecha a izquierda. Por ejemplo, la palabra alola si la invertimos sigue siendo la mima palabra.
La idea es que si la palabra original es igual a la palabra invertida, será un palíndromo.
Ya hemos visto como invertir una cadena en Java en este tutorial:
https://www.discoduroderoer.es/como-invertir-una-cadena-en-java/
Así sería el código:
import java.util.Scanner; public class Palindromo { public static void main(String[] args) { Scanner sn = new Scanner(System.in); sn.useDelimiter("\n"); // Pedimos una cadena y la convertimos a minisculas System.out.println("Escribe una cadena"); String cadena = sn.next().toLowerCase(); String cadenaInvertida = invertirCadena(cadena); // Comprobamos si es palindromo o no if(cadena.equals(cadenaInvertida)){ System.out.println("Es palindromo"); }else{ System.out.println("No es palindromo"); } } public static String invertirCadena(String cadena){ cadena = cadena.toLowerCase(); String cadenaInvertida = ""; // Invertimos la cadena char caracter; for (int i = cadena.length() - 1; i >= 0; i--) { caracter = cadena.charAt(i); cadenaInvertida += caracter; } return cadenaInvertida; } }
Este es el resultado:
Si lo queremos en función, seria así:
import java.util.Scanner; public class Palindromo { public static void main(String[] args) { Scanner sn = new Scanner(System.in); sn.useDelimiter("\n"); // Pedimos una cadena System.out.println("Escribe una cadena"); String cadena = sn.next(); if(esPalindromo(cadena)){ System.out.println("Es palindromo"); }else{ System.out.println("No es palindromo"); } } public static String invertirCadena(String cadena){ cadena = cadena.toLowerCase(); String cadenaInvertida = ""; // Invertimos la cadena char caracter; for (int i = cadena.length() - 1; i >= 0; i--) { caracter = cadena.charAt(i); cadenaInvertida += caracter; } return cadenaInvertida; } public static boolean esPalindromo(String cadena){ String cadenaInvertida = invertirCadena(cadena); // Comprobamos si es palindromo o no return cadena.equalsIgnoreCase(cadenaInvertida); } }
El resultado seria el mismo.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta