Last active
April 13, 2020 03:41
-
-
Save Ts-Pytham/309eb2f29fb867df1e3dce8769c785f1 to your computer and use it in GitHub Desktop.
ReplaceALL and RemoveALL C# By Ts-Pytham
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
namespace ReplaceALL | |
{ | |
class Program | |
{ | |
static string ReplaceAll(string str, string palabra_reemplazar, string palabra) | |
{ | |
string aux = "", aux1 = ""; | |
int len = str.Length, correcto = palabra_reemplazar.Length, j = 0; | |
for(int i = 0; i < len; ++i) | |
{ | |
if (correcto <= palabra_reemplazar.Length - 1) | |
{ | |
if (str[i] != palabra_reemplazar[j]) | |
/* | |
La condición es clara, si es diferente entraría ya que anteriormente la j | |
obtuvo un valor de 1, por lo tanto va a comprobar si es el mismo que el de la iteración | |
si se da cuenta que no lo que hace es asignarle al string aux los valores que tenía aux1 y | |
vaciamos el string aux1, de paso seteamos j igual a 0 para que compruebe si en realidad str[i] | |
es igual a la palabra_Reemplazar[j] ya que existe un caso donde podrían ser iguales, por lo tanto | |
ese es el motivo y de paso correcto será igual a la longitud de la palabra ya que si entró a este | |
condicional fue porque no se encontraron semejanzas. | |
*/ | |
{ | |
aux += aux1; | |
aux1 = ""; | |
j = 0; | |
correcto = palabra_reemplazar.Length; | |
} | |
} | |
if (str[i] == palabra_reemplazar[j]) | |
{ | |
aux1 += str[i]; //aux1 obtiene el valor de str por si más adelante no se cumple la anterior condición y darle ese valor al aux. | |
correcto--; //Lo decrementamos, la idea es llegar hasta 0 porque nos confirma que es correcto el valor. | |
j++; | |
if (i == len - 1 && correcto != 0) //En el hipotético caso que al final de la cadena entre a la condición, pero como tiene que esperar porque le sigue un continue (termina el for) entonces se le da el valor a reemplazar. | |
aux += str[i]; | |
if (correcto != 0) | |
continue; | |
} | |
if (correcto == 0) //Si es correcto se le concatena el valor de palabra en aux, seteamos aux1 como vacio y seteamos correcto. | |
{ | |
aux += palabra; | |
aux1 = ""; | |
correcto = palabra_reemplazar.Length; | |
j = 0; | |
} | |
else | |
{ | |
if (correcto <= palabra_reemplazar.Length - 1) //Si ve que correcto fue menor a la longitud de la palabra, entonces entró anteriormente a una condición de arriba. | |
{ | |
correcto = palabra_reemplazar.Length; //Seteamos el valor. | |
aux = aux + aux1 + str[i]; //Se concatenamos str, aux1 y aux para no perder los valores de antes. | |
aux1 = ""; //Seteamos el valor. | |
j = 0; | |
} | |
else | |
aux += str[i]; //caso contrario, entrará acá | |
} | |
} | |
return aux; | |
} | |
static String RemoveAll(String str, String palabra_eliminar) | |
{ | |
return ReplaceAll(str, palabra_eliminar, ""); | |
} | |
static void Main(string[] args) | |
{ | |
Console.WriteLine("Digite una cadena de caracter"); | |
String str = Console.ReadLine(); | |
String str2 = ReplaceAll(str, "%20", "DOM"); | |
Console.WriteLine($"Se cambio en el string por: {str2}"); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment