¿Cómo se eliminan espacios de una cadena en VB.NET?Eliminar espacios de una cadena en VB.NET
Respuesta
2015: más reciente LINQ & lambda.
- Como esta es una antigua Q (y respuesta), pensé actualizarla con métodos más nuevos de 2015.
- El "espacio" original puede referirse a espacios en blanco no espaciales (es decir, tabulación, nueva línea, separador de párrafo, avance de línea, retorno de carro, etc., , etc.).
- Además, Trim() solo elimina los espacios de la parte frontal/posterior de la cadena, no elimina espacios dentro de la cadena; Por ejemplo: "Leading and Trailing Spaces" se convertirá en "Leading and Trailing Spaces", pero los espacios en el interior aún están presentes.
Function RemoveWhitespace(fullString As String) As String
Return New String(fullString.Where(Function(x) Not Char.IsWhiteSpace(x)).ToArray())
End Function
Esto eliminará todos los -espacio (blanco), lo que lleva, por detrás y dentro de la cadena.
para eliminar todos los espacios:
myString = myString.Replace(" ", "")
para eliminar líder y espacios finales:
myString = myString.Trim()
Nota: esto elimina cualquier espacio en blanco, de modo nuevas líneas, pestañas, etc. sería eliminado .
"Espacios" en la publicación original podría hacer referencia a espacios en blanco, y todavía no hay respuesta muestra cómo eliminar TODOS espacios en blanco de una cadena. Para eso, las expresiones regulares son el enfoque más flexible que he encontrado.
A continuación se muestra una aplicación de consola donde puede ver la diferencia entre reemplazar espacios o todos los espacios en blanco.
Puede encontrar más información sobre las expresiones regulares de .NET en http://msdn.microsoft.com/en-us/library/hs600312.aspx y http://msdn.microsoft.com/en-us/library/az24scfc.aspx
Imports System.Text.RegularExpressions
Module TestRegExp
Sub Main()
' Use to match all whitespace (note the lowercase s matters)
Dim regWhitespace As New Regex("\s")
' Use to match space characters only
Dim regSpace As New Regex(" ")
Dim testString As String = "First Line" + vbCrLf + _
"Second line followed by 2 tabs" + vbTab + vbTab + _
"End of tabs"
Console.WriteLine("Test string :")
Console.WriteLine(testString)
Console.WriteLine("Replace all whitespace :")
' This prints the string on one line with no spacing at all
Console.WriteLine(regWhitespace.Replace(testString, String.Empty))
Console.WriteLine("Replace all spaces :")
' This removes spaces, but retains the tabs and new lines
Console.WriteLine(regSpace.Replace(testString, String.Empty))
Console.WriteLine("Press any key to finish")
Console.ReadKey()
End Sub
End Module
Para recortar una cadena hacia abajo de manera que no contiene dos o más espacios en una fila. Cada instancia de 2 o más espacios se reducirá a 1 espacio. Una solución simple:
While ImageText1.Contains(" ") '2 spaces.
ImageText1 = ImageText1.Replace(" ", " ") 'Replace with 1 space.
End While
¡gracias! esta es una solución genial –
También puede usar una pequeña función que recorrerá y eliminará cualquier espacio.
Esto es muy limpio y simple.
Public Shared Function RemoveXtraSpaces(strVal As String) As String
Dim iCount As Integer = 1
Dim sTempstrVal As String
sTempstrVal = ""
For iCount = 1 To Len(strVal)
sTempstrVal = sTempstrVal + Mid(strVal, iCount, 1).Trim
Next
RemoveXtraSpaces = sTempstrVal
Return RemoveXtraSpaces
End Function
No es el que menosprecia, pero eso es completamente exagerado y contraproducente. Concatenas un personaje a la vez, llamando 'Trim' cada vez? Solo usa la respuesta aceptada. – LittleBobbyTables
Me gustaría defender esta respuesta, ya que proporciona un medio para recorrer las cadenas de un extremo u otro, para eliminar solo un espacio en una ubicación determinada dentro de la cadena en lugar de en todos los espacios. Puede ser valioso para alguien que busca realizar una limpieza sin eliminar todos los espacios. – htm11h
Prueba este código para que trim
un String
Public Function AllTrim(ByVal GeVar As String) As String
Dim i As Integer
Dim e As Integer
Dim NewStr As String = ""
e = Len(GeVar)
For i = 1 To e
If Mid(GeVar, i, 1) <> " " Then
NewStr = NewStr + Mid(GeVar, i, 1)
End If
Next i
AllTrim = NewStr
' MsgBox("alltrim = " & NewStr)
End Function
Esto eliminará sólo espacios, coincide con la funcionalidad de SQL de rtrim (ltrim (miCadena))
Dim charstotrim() As Char = {" "c}
myString = myString .Trim(charstotrim)
¿Qué hay de la solución Regex.Replace?
myStr = Regex.Replace(myStr, "\s", "")
- 1. Eliminar espacios de una cadena
- 2. Eliminar espacios en blanco dentro de una cadena en javascript
- 3. Eliminar espacios en blanco en cadena XML
- 4. ¿Cómo eliminar espacios de una cadena en Lua?
- 5. Eliminar el último carácter de una cadena (VB.NET 2008)
- 6. Eliminar espacios del principio y el final de una cadena
- 7. ¿Cómo eliminar espacios de una cadena usando JavaScript?
- 8. ¿Cómo eliminar espacios antes y después de una cadena?
- 9. División de una cadena en todos los espacios en blanco
- 10. Eliminar espacios en blanco dentro de la cadena
- 11. Regex para eliminar espacios
- 12. Eliminar espacios de std :: string en C++
- 13. Recorte de espacios en blanco de una cadena en Java
- 14. ¿Escape una cadena (agregue barras) en VB.net?
- 15. Eliminar los espacios en blanco en AS3
- 16. Separar una cadena por espacios
- 17. VB.NET - Retirar un caracteres de una cadena
- 18. Javascript - Eliminar espacios en pegar
- 19. Encontrar espacios dobles en una cadena - Python
- 20. ¿Cómo elimino espacios repetidos en una cadena?
- 21. reemplazando espacios en una cadena con guiones
- 22. Eliminando espacios de la cadena
- 23. Java Regex - reducir espacios en una cadena
- 24. vb.net: ¿Se puede dividir una cadena por una cadena
- 25. Definir cadena ENUM en VB.Net
- 26. Eliminar espacios en blanco con coma en una cadena en shell bash
- 27. ¿Cómo eliminar todos los espacios en blanco desde el inicio o el final de una cadena?
- 28. Eliminar exceso de espacio en blanco de una cadena
- 29. Eliminar caracteres de una cadena
- 30. Expresión regular de Javascript Eliminar espacios
.Trim elimina los espacios en blanco de los caracteres. Puede que no sea lo que él quiere. – ElGringoGrande
Gracias @ el.gringogrande. – David
Reemplazar ("", vbNullString) puede funcionar un pelo más rápido, y (más importante) ser un poco más claro. YMMV. –