Как удалить пробелы из строки в VB.NET?
Удалить пробелы из строки в VB.NET
Ответ 1
2015: новые LINQ и lambda.
- Так как это старый Q (и ответ), просто подумайте о его обновлении новых методов 2015 года.
- Исходное "пространство" может относиться к непространственным пробелам (т.е. tab, newline, разделитель абзацев, линия, возврат каретки и т.д. и т.д.).
- Кроме того, Trim() удаляет только пробелы из передней/задней части строки, она не удаляет пробелы внутри строки; например: "Leading and Trailing Spaces" станет "Leading and Trailing Spaces", но пробелы внутри все еще присутствуют.
Function RemoveWhitespace(fullString As String) As String
Return New String(fullString.Where(Function(x) Not Char.IsWhiteSpace(x)).ToArray())
End Function
Это удалит ВСЕ (белое) -пространство, ведущее, завершающее и внутри строки.
Ответ 2
Чтобы удалить ВСЕ пробелы:
myString = myString.Replace(" ", "")
Чтобы удалить начальное и конечное пространства:
myString = myString.Trim()
Примечание. Это исключает любое свободное пространство, поэтому строки новой строки, вкладки и т.д. будут удалены.
Ответ 3
Чтобы обрезать строку, чтобы она не содержала двух или более пробелов в строке. Каждый экземпляр 2 или более места будет обрезаться до 1 пробела. Простое решение:
While ImageText1.Contains(" ") '2 spaces.
ImageText1 = ImageText1.Replace(" ", " ") 'Replace with 1 space.
End While
Ответ 4
"Пробелы" в исходном сообщении могут ссылаться на пробелы, и пока нет ответа, как удалить ВСЕ whitespace из строки. Для этого регулярные выражения являются наиболее гибким подходом, который я нашел.
Ниже приведено консольное приложение, в котором вы можете увидеть разницу между заменой просто пробелов или всех пробелов.
Вы можете найти больше о регулярных выражениях .NET в http://msdn.microsoft.com/en-us/library/hs600312.aspx и 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
Ответ 5
Вы также можете использовать небольшую функцию, которая будет циклически проходить и удалять любые пробелы.
Это очень просто и чисто.
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
Ответ 6
Это удалит только пробелы, соответствует функциональности SQL rtrim (ltrim (myString))
Dim charstotrim() As Char = {" "c}
myString = myString .Trim(charstotrim)
Ответ 7
Как насчет решения Regex.Replace?
myStr = Regex.Replace(myStr, "\s", "")
Ответ 8
Попробуйте использовать этот код для 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