Comment supprimez-vous les espaces d'une chaîne dans VB.NET?
2015: plus récent LINQ & lambda.
Function RemoveWhitespace(fullString As String) As String
Return New String(fullString.Where(Function(x) Not Char.IsWhiteSpace(x)).ToArray())
End Function
Cela supprimera ALL (blanc), les espaces en tête, en fin et dans la chaîne.
Pour supprimer TOUS les espaces:
myString = myString.Replace(" ", "")
Pour supprimer les espaces précédant et :
myString = myString.Trim()
Remarque: ceci supprime tout espace blanc, ainsi les nouvelles lignes, les onglets, etc. seront supprimés.
Les "espaces" de la publication d'origine pourraient faire référence à des espaces, et aucune réponse ne montre encore comment supprimer ALL whitespace d'une chaîne. Pour cela, les expressions régulières sont l'approche la plus flexible que j'ai trouvée.
Ci-dessous se trouve une application console où vous pouvez voir la différence entre remplacer uniquement des espaces ou tous les espaces.
Pour en savoir plus sur les expressions régulières .NET, consultez http://msdn.Microsoft.com/en-us/library/hs600312.aspx et http://msdn.Microsoft.com/en-us/ bibliothèque/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
Réduire une chaîne pour qu’elle ne contienne pas deux espaces ou plus. Chaque instance de 2 ou plusieurs espaces sera réduite à 1 espace. Une solution simple:
While ImageText1.Contains(" ") '2 spaces.
ImageText1 = ImageText1.Replace(" ", " ") 'Replace with 1 space.
End While
Cela supprimera uniquement les espaces, correspond à la fonctionnalité SQL de rtrim (ltrim (myString))
Dim charstotrim() As Char = {" "c}
myString = myString .Trim(charstotrim)
Qu'en est-il de la solution Regex.Replace?
myStr = Regex.Replace(myStr, "\s", "")
Vous pouvez également utiliser une petite fonction qui parcourt et supprime les espaces.
C'est très propre et 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
Essayez ce code pour trim
a 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