// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: ManipulacionCadenas.cs
//
// Propósito: Demostrar el uso uso eficiente de StringBuilder
//
============================================================*/
using System;
using System.Text;
namespace Recetas.Ch02
{
public class ManipulacionCadenas
{
///<summary>
///
///</summary>
public static string InvertirCadena(string cadena)
{
// Valida que cadena sea reversible
if (cadena == null || cadena.Length <= 1)
{
return cadena;
}
// Creación de objeto StringBuilder con capacidad igual
// a la longitud de la cadena de caracteres pasada como argumento
StringBuilder cadenaInversa = new StringBuilder(cadena.Length);
// Caracter por caracter, empezando por el último caracter en
// en el objeto cadena es añadido a cadenaInversa
for (int i = cadena.Length - 1; i >= 0; --i)
{
cadenaInversa.Append(cadena[i]);
}
return cadenaInversa.ToString();
}
public static void Main()
{
// Ejemplos con algunos palíndromos
Console.WriteLine(InvertirCadena("Allí si María avisa y así va a ir a mi silla"));
Console.WriteLine("No di mi decoro, cedí mi don");
}
}
}