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://discoduroderoer.es/como-invertir-una-cadena-en-java/
Así sería el código:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
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í:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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