“Eliminar texto específico del medio de una cadena (sólo la primera aparición desde el final de la cadena)”
Necesito eliminar un valor específico del medio de una cadena y solo su primera aparición al final de la cadena, por ejemplo:
URL: https://something/ABCD/EFGH/IJKL/**ABCD**?id=1234567910
En la cadena de URL anterior necesito reemplazar el último “ABCD” por “NEW” como se muestra a continuación:
URL: https://something/ABCD/EFGH/IJKL/**NEW**?id=1234567910
Actualmente, lo estoy haciendo de la siguiente manera:
usando el sistema;
namespace StringReplaceSample
{
public class Programa
{
public static void Main(string[] args)
{
string pageid = "?id=1234567910"; // esto es algo que puedo recuperar o obtener
string ejemplo = "https://something/ABCD/EFGH/IJKL/ABCD?id=1234567910";
String[] breakApart = ejemplo.Split('/' );
var exampleTrimmedlastValue = breakApart[breakApart.Length-1];
var exampleReplace = ejemplo.Replace(exampleTrimmedlastValue,"NEW" );
var exampleTrimmed = exampleReplace+pageid;
Console.WriteLine("Cadena original:" +ejemplo);
Console.WriteLine("Cadena recortada:"+exampleTrimmed);
}
}
}
pero no encuentro esto muy eficiente y es enorme. ¿Alguien puede sugerir alguna forma más sencilla de hacer esto?
davy.ai
Puedes usar el método
String.Replace()
para reemplazar la última aparición de un valor específico en una cadena. Por ejemplo:string pageid = "?id=1234567910";
string example = "https://something/ABCD/EFGH/IJKL/ABCD?id=1234567910";
string exampleReplace = example.Replace("ABCD", "NUEVO");
string exampleTrimmed = exampleReplace + pageid;
Console.WriteLine("Cadena original:" + example);
Console.WriteLine("Cadena recortada:" + exampleTrimmed);