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);
}
}
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Muchas gracias, lo adapté a mi conveniencia y logré mi objetivo gracias a ti.