es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“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?

Tags:  , ,

Answer

  1. Avatar for 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);

Comments are closed.