1. Primero, creamos un nuevo proyecto C# en la consola (Console Application) en el IDE de desarrollo de tu elección, como Visual Studio.
2. Después, declaramos un espacio de nombres (namespace) para nuestro programa. En este caso, lo nombré como "PalindromoChecker".
3. Dentro del espacio de nombres, creamos una clase llamada "Program". Esta es la clase principal que contiene el método "Main", que es el punto de entrada del programa.
4. Dentro del método "Main", imprimimos un mensaje para que el usuario ingrese una palabra utilizando
Console.WriteLine(). Luego, leemos la entrada del usuario conConsole.ReadLine()y almacenamos el valor en la variablepalabra.5. A continuación, llamamos al método
EsPalindromo()para determinar si la palabra ingresada es un palíndromo o no.6. El método
EsPalindromo()se define después del método "Main". Recibe una cadena (string) como entrada y devuelve un valor booleano (truesi es un palíndromo,falsesi no lo es).7. Dentro del método
EsPalindromo(), convertimos la palabra a minúsculas usandoToLower()para asegurarnos de que la comparación sea insensible a mayúsculas y minúsculas.8. Luego, utilizamos LINQ para eliminar los caracteres no alfanuméricos de la cadena.
Where(c => Char.IsLetterOrDigit(c))filtra solo los caracteres que son letras o dígitos y luego los convertimos nuevamente en una cadena usandonew string().9. Finalmente, comparamos la palabra original con su versión invertida utilizando la función
Reverse()para invertir los caracteres yToArray()para convertir el resultado en un arreglo de caracteres. Si ambas cadenas son iguales, entonces la palabra es un palíndromo y retornamostrue; de lo contrario, retornamosfalse.
El programa luego imprime si la palabra ingresada es un palíndromo o no, dependiendo del valor devuelto por el método EsPalindromo().
Codigo del programa realizado:
using System; namespace PalindromoChecker { class Program { static void Main(string[] args) { Console.WriteLine("Ingrese una palabra: "); string palabra = Console.ReadLine(); if (EsPalindromo(palabra)) { Console.WriteLine("Es un palíndromo."); } else { Console.WriteLine("No es un palíndromo."); } } static bool EsPalindromo(string palabra) { // Convertir la palabra a minúsculas para comparar sin considerar mayúsculas palabra = palabra.ToLower(); // Eliminar espacios en blanco y otros caracteres no alfanuméricos palabra = new string(palabra.ToCharArray().Where(c => Char.IsLetterOrDigit(c)).ToArray()); // Comparar la palabra con su reverso return palabra == new string(palabra.ToCharArray().Reverse().ToArray()); } } }
