Hoy vamos a ver dos maneras de invertir una cadena o string en C#. La primer forma que veremos será para invertir una cadena con métodos que el lenguaje proporciona, y la segunda de una forma más manual.
Esta última forma para invertir una cadena será para aquellos casos en donde alguien nos pide el algoritmo para invertir una cadena sin usar métodos que el lenguaje proporcione.
El algoritmo es muy sencillo. Creamos una cadena vacía, y recorremos la otra carácter por carácter. En cada iteración anteponemos la letra en la cadena creada inicialmente.
De esta manera podemos invertir la cadena; lo mismo daría recorrer la cadena de derecha a izquierda e ir concatenando cada carácter.
El código es el siguiente:
public static string InvertirManualmente(string cadena){
string cadenaInvertida = "";
// Recorrer cadena letra por letra
foreach(char letra in cadena){
// Anteponer la letra a la cadena invertida
cadenaInvertida = letra + cadenaInvertida;
}
return cadenaInvertida;
}
Otro enfoque que no utiliza un algoritmo personalizado o escrito por nosotros es convertir la cadena a un arreglo de caracteres o chars, después invertir ese arreglo con Array.Reverse
y finalmente convertir ese arreglo a cadena.
En pocas palabras, convertimos a arreglo, invertimos el arreglo con el método que C# proporciona y luego lo devolvemos a cadena.
El código es el siguiente:
public static string Invertir(string cadena){
// Convertir a arreglo
char[] cadenaComoCaracteres = cadena.ToCharArray();
// Invertir el arreglo usando métodos incorporados
Array.Reverse(cadenaComoCaracteres);
// Convertir de nuevo el arreglo a cadena
return new string(cadenaComoCaracteres);
}
Los puntos importantes son la llamada a ToCharArray
y Array.Reverse
.
El siguiente código demuestra y prueba cómo invertir cadenas con C#:
/*
Dos formas de invertir una cadena o string
en C#
@author parzibyte
*/using System;
class MainClass {
public static void Main (string[] args) {
Console.WriteLine ("Hola mundo");
Console.WriteLine (InvertirManualmente("Hola mundo"));
Console.WriteLine (Invertir("Hola mundo"));
}
public static string InvertirManualmente(string cadena){
string cadenaInvertida = "";
// Recorrer cadena letra por letra
foreach(char letra in cadena){
// Anteponer la letra a la cadena invertida
cadenaInvertida = letra + cadenaInvertida;
}
return cadenaInvertida;
}
public static string Invertir(string cadena){
// Convertir a arreglo
char[] cadenaComoCaracteres = cadena.ToCharArray();
// Invertir el arreglo usando métodos incorporados
Array.Reverse(cadenaComoCaracteres);
// Convertir de nuevo el arreglo a cadena
return new string(cadenaComoCaracteres);
}
}
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
Ver comentarios
Muchas gracias, lo adapté a mi conveniencia y logré mi objetivo gracias a ti.