Invertir cadena con C#
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 vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.
Ver comentarios
Muchas gracias, lo adapté a mi conveniencia y logré mi objetivo gracias a ti.