Lo que he notado en este tipo de preguntas es que todo el mundo sugiere eliminar el último carácter de una cadena dada. Pero esto no cumple con la definición del método Trim.
Recortar: elimina todas las apariciones de caracteres de espacio en blanco desde el principio y el final de esta instancia.
Tenga en cuenta que si desea eliminar todos los caracteres del mismo valor, es decir (!!!!), el método anterior elimina todas las existencias de '!' desde el final de la cadena, pero si desea eliminar solo el último carácter, debe usar esto:
Esto es mejor siempre y cuando siempre sepas qué personaje quieres eliminar del final de la Cadena.
Nimrod Shory
1
Hola Vash, ¿qué opinas sobre mi solución usando un RegEx? Cumple con la solicitud de Thqr y permite eliminar el '!' char de cualquier "mundo!" expresión, en cualquier lugar donde se coloque la expresión, en una sola línea de código.
Marcello Faga
24
-1 ¡Esta solución eliminará todos los mismos caracteres finales! Por ejemplo, se convertiría en "¡Hola!" en "Hola", que elimina más que el último carácter.
Kugel
1
@ Kugel, tienes toda la razón, y por eso deberías leer una vez más mi respuesta. Para una explicación, OP no pregunte cómo eliminar el último carácter, sino cómo recortarlo.
Damian Leszczyński - Vash
1
@Vash: ¿cómo se elimina una comilla simple con el método "Hello! World!". TrimEnd ('!');
"!Something!".TrimLeadingCharacter('X');// Result '!Something!' (No Change)"!Something!".TrimTrailingCharacter('S');// Result '!Something!' (No Change)"!Something!".TrimEndsCharacter('g');// Result '!Something!' (No Change)"!Something!".TrimLeadingCharacter('!');// Result 'Something!' (1st Character removed)"!Something!".TrimTrailingCharacter('!');// Result '!Something' (Last Character removed)"!Something!".TrimEndsCharacter('!');// Result 'Something' (End Characters removed)"!!Something!!".TrimLeadingCharacter('!');// Result '!Something!!' (Only 1st instance removed)"!!Something!!".TrimTrailingCharacter('!');// Result '!!Something!' (Only Last instance removed)"!!Something!!".TrimEndsCharacter('!');// Result '!Something!' (Only End instances removed)
Respuestas:
Lee mas
EDITAR:
Lo que he notado en este tipo de preguntas es que todo el mundo sugiere eliminar el último carácter de una cadena dada. Pero esto no cumple con la definición del método Trim.
MSDN-Trim
Según esta definición, eliminar solo el último carácter de la cadena es una mala solución.
Entonces, si queremos "Recortar el último carácter de la cadena", deberíamos hacer algo como esto
Ejemplo como método de extensión:
Tenga en cuenta que si desea eliminar todos los caracteres del mismo valor, es decir (!!!!), el método anterior elimina todas las existencias de '!' desde el final de la cadena, pero si desea eliminar solo el último carácter, debe usar esto:
fuente
fuente
o
... en caso de que desee eliminar un carácter que no sea un espacio en blanco del final.
fuente
TrimEnd()
método y si lo hubiera, podría hacer que laSubstring(..)
llamada posterior falle en cadenas cortas.fuente
Prueba esto:
fuente
fuente
El otro ejemplo de recortar el último carácter de una cadena:
Puede ponerlo en un método de extensión y evitar que sea una cadena nula, etc.
fuente
fuente
también puedes usar esto:
fuente
Muy fácil y simple:
fuente
Versión ligeramente modificada de @Damian Leszczyński - Vash que se asegurará de que solo se elimine un personaje específico.
fuente
Tomé el camino de escribir una extensión usando TrimEnd solo porque ya lo estaba usando en línea y estaba contento con él ... es decir:
Asegúrese de incluir el espacio de nombres en sus clases usando la clase estática; P y el uso es:
fuente
Un ejemplo de clase de extensión para simplificar esto: -
Uso
fuente
Si quieres eliminar el '!' carácter de una expresión específica ("mundo" en su caso), entonces puede usar esta expresión regular
el carácter especial de $ 1 contiene todas las expresiones de "mundo" coincidentes, y se usa para reemplazar el "mundo" original. expresión
fuente