2011-01-13 21 views
6

Estoy intentando eliminar un último carácter de una cadena. Este último carácter es una nueva línea (System.Environment.NewLine).Eliminar el último carácter de una cadena (VB.NET 2008)

He intentado algunas cosas, pero no puedo eliminarlo.

Ejemplo:

myString.Remove(sFP.Length - 1) 

Ejemplo 2:

myString= Replace(myString, Environment.NewLine, "", myString.Length - 1) 

¿Cómo puedo hacerlo?

Respuesta

16

Si su nueva línea es CR LF, en realidad son dos caracteres consecutivos. Pruebe su llamada Remove con Length - 2.

Si desea eliminar todos los caracteres "\ r" "\ n", y al final de la cadena, intente llamar TrimEnd, pasando los personajes:

str.TrimEnd(vbCr, vbLf) 

para eliminar todos los caracteres de espacio en blanco (saltos de línea, pestañas, espacios, ...) simplemente llame al TrimEnd sin pasar nada.

+0

Al igual que en C#, VB cadenas son inmutables. –

+0

@Konrad ¡Por supuesto! Ahora que lo pienso, es importante señalar en esta pregunta, ya que puede ser particularmente confuso. Para aclarar, quise proporcionar una * expresión *, no una * declaración *. No modificará la variable 'str'. El valor de retorno es una cadena distinta. Tienes que usar algo como 'str = str.TrimEnd()' si quieres que la variable cambie. –

+1

bien. gracias. Resuelto siguiendo tu ejemplo: myString = myString.Remove (mystring.Length - 2) – aco

3
Dim str As String = "Test" & vbCrLf 
str = str.Substring(0, str.Length - vbCrLf.Length) 

lo mismo con Environment.NewLine en lugar de vbCRLF:

str = "Test" & Environment.NewLine 
str = str.Substring(0, str.Length - Environment.NewLine.Length) 

Por cierto, la diferencia es: Environment.NewLine es específico de la plataforma (Fe vuelve otra cadena en otro sistema operativo)

Su aproximación remove no funcionó porque no asignó el valor de retorno de esta función a su referencia de cadena original:

str = str.Remove(str.Length - Environment.NewLine.Length) 

o si desea reemplazar todos los saltos de línea:

str = str.Replace(Environment.NewLine, String.Empty) 
-1

Uso:

Dim str As String 
str = "cars,cars,cars" 
str = str.Remove(str.LastIndexOf(",")) 
Cuestiones relacionadas