Hola :
espero que te ayude ( no es la unica manera de resolver este problema.
//Copyright : systemtak
// web : http://systemtak.blogspot.com
using System;
class frase
{
public void muestraFrase(string xcadena)
{
Console.WriteLine(":>>Cadena Ingresada es : " + xcadena);
}
public void menuFrase()
{
Console.WriteLine("--- MENU ---");
Console.WriteLine("1. Ingrese Nueva Frase ");
Console.WriteLine("2. Mostrar Frase actual ");
Console.WriteLine("3. Cantidad de Letras ");
Console.WriteLine("4. Invertir Frase ");
Console.WriteLine("5. Es Palindromo ");
Console.WriteLine("6. Salir ");
Console.WriteLine("---");
Console.Write("Digite Opcion: ");
}
public void cantidadLetras(string xcadena)
{
int cnnCadena;
string[] cadena = xcadena.Split(' ');
cnnCadena= xcadena.Length - cadena.Length + 1;
Console.Write(":>> Longitud de cadena :"+cnnCadena+"
");
}
public bool existeCadena(string xcadena)
{
if (xcadena.Trim().Length > 0)
{
return true;
}
else
{
return false;
}
}
public void invertirCadena(string xcadena)
{
string b = "";
for (int i = xcadena.Length-1 ; i >= 0; i--)
{
b = b + xcadena.Substring(i,1);
}
Console.WriteLine(":>> Nueva Cadena :" + b);
}
public bool polindromo(string xcadena)
{
string[] subcadena=xcadena.Split(' ');
int num = subcadena.Length;
int i= num / 2;
int indicador=0;
for (int j = 0; j < i; j++)
{
if (subcadena[j] == subcadena[num - j - 1])
indicador++;
}
if (indicador == i)
{
return true;
}
else
{
return false;
}
}
}
class ejemplo01
{
static void Main()
{
byte cantidad=0; // 0 - 255
byte opcion; // 0-255
// string[] cadena;
string texto="";
frase fr = new frase();
try
{
do
{
fr.menuFrase();
opcion =byte.Parse(Console.ReadLine());
switch(opcion)
{
case 1:
Console.Write(":>>Ingrese Cantidad de caracteres: ");
cantidad = byte.Parse(Console.ReadLine());
Console.Write(":>>Ingrese el Texto :");
texto = Console.ReadLine();
break;
case 2:
if (fr.existeCadena(texto))
{
fr.muestraFrase(texto);
}
else
{
Console.WriteLine("Cadena esta Vacia");
Console.Clear();
}
break;
case 3:
if (fr.existeCadena(texto))
{
fr.cantidadLetras(texto);
}
else
{
Console.WriteLine("Cadena esta Vacia");
Console.Clear();
}
break;
case 4:
if (fr.existeCadena(texto))
{
fr.invertirCadena(texto);
}
else
{
Console.WriteLine("Cadena esta Vacia");
Console.Clear();
}
break;
case 5:
if (fr.existeCadena(texto))
{
//Polindromo
if(fr.polindromo(texto))
{
Console.WriteLine(" :>>>> Es Polindromo");
}
else
{
Console.WriteLine(" :>>>> No es Polindromo");
}
}
else
{
Console.WriteLine("Cadena esta Vacia");
Console.Clear();
}
break;
case 6:
break;
default :
Console.WriteLine("Opcion fuera de Limite ");
break;
}
}while(opcion !=6);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
Atte,
atak