Quiero:¿Cómo eliminar un sufijo del final de la cadena?
- Comprobar una variable y determinar si los 2 últimos caracteres son "Id"
- Si es así, eliminarlos.
Puedo hacerlo con esto a continuación, pero les explotará si hay una subcadena "Id" distinta del final. ¿Hay un método RemoveFromEnd() que tome un argumento de varios caracteres?
if (column.EndsWith("Id"))
{
//remove last 2 characters
column = column.replace("Id", "");
}
veo this solution: que hace esto:
column = System.Text.RegularExpressions.Regex.Replace(column, "Id$", "");
pero dice que es bastante lenta y voy a ejecutar este código dentro de un bloque de código que me gustaría ser muy rápido por lo Quería ver si hay una solución más rápida disponible.
Simplemente curioso cómo "lenta" la expresión regular es (una el anclaje final sin retroceso debería ser rápido) ... aunque la subcadena es más apropiada aquí. OTOH, con la expresión regular no hay condicional/EndsWith explícito. –
El Regex debería ser más rápido en el caso general. ¿Intentó precompilarlo o almacenarlo como miembro para usarlo en su método? (para evitar el costo de crear la expresión regular cada vez) – jdehaan
posible duplicado de [cadena de recorte al final de la cadena] (http://stackoverflow.com/questions/4226657/trim-string-at-the-end-of -the-string) – nawfal