Hola csharpedianos, En este post veremos varios metodos aplicados al manejo de caracteres con la clase string.
Un string es una cadena de caracteres, y hay que saber dominar todos estos caracteres y hacer con ellos lo que nos venga en gana.
Es por eso que les traigo este post donde veremos algunas cosas interesantes que podemos hacer con esta clase string.
Código en C#
public static bool Contiene(string palabra, string cadena) { for (int i = 0; i <= palabra.Length-cadena.Length; i++) //Si encontramos dos letras iguales if(palabra[i]==cadena[0]) { bool contenida = true; //Recorremos la cadena desde la posición 1 //y comparamos con la palabra a partir de //la posición donde las dos letras iguales for (int j = 1; j < cadena.Length; j++) if (palabra[i + j] != cadena[j]) contenida = false; //Si esta contenida if(contenida) return true; } //Si no está contenida return false; } public static bool EsPalindromo(string s) { //Si s está vacio o tiene longitud 1 retornamos true //Este es el caso base o condicion de parada recursiva if (s.Length == 0 || s.Length == 1) return true; //Quitamos las esquinas para ver si lo que queda //es palíndromo. string result = s.Substring(1, s.Length - 2); //Retornamos si los dos extremos de s son iguales //y volvemos a llamar al metodo EsPalindromo return s[0] == s[s.Length - 1] && EsPalindromo(result); } public static string Invertir(string s) { string result = ""; //Recorremos la cadena desde el final for (int k = s.Length - 1; k >= 0; k--) //Guardamos cada caracter en un nuevo string result = result + s[k]; return result; } public static string Reemplazar(string cadena, string x, string y) { string resp = cadena; for (int i = 0; i < cadena.Length; i++) { if (resp[i] == x[0]) { bool igual = true; for (int j = 1; j < x.Length; j++) { if (resp[i + j] != x[j]) igual = false; } if (igual) { string alante = resp.Substring(0, i); string atras = resp.Substring(i + x.Length); resp = alante + y + atras; } } } return resp; }Es importante notar que aunque String, es una clase en C#, se puede tratar como un array de caracteres, y que el for se hace hasta palabra.Length-subcadena.Length, para que no de excepción. También hay que decir que este ejercicio se puede hacer de otra forma más eficiente usando String Matching y algoritmos como KMP, pero no es el objetivo de este post.
Creo que el código está bien comentado, pero cualquier pregunta en los comentarios
Descarga aquí el código.
Espero que lo disfruten, compartan y comenten. ;)
"Si se puede imaginar... se puede programar."
Hellο, ϳust wanted tο say,
ResponderEliminarI enjoyeԁ thіs post. Ӏt wаѕ practical.
Keeρ on pоsting!
Feel free to surf tо mу web-sіte: Www.Sfgate.Com