Skip to content

Instantly share code, notes, and snippets.

@Ts-Pytham
Last active April 13, 2020 03:41
Show Gist options
  • Save Ts-Pytham/309eb2f29fb867df1e3dce8769c785f1 to your computer and use it in GitHub Desktop.
Save Ts-Pytham/309eb2f29fb867df1e3dce8769c785f1 to your computer and use it in GitHub Desktop.
ReplaceALL and RemoveALL C# By Ts-Pytham
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