删除字符串中多余的空格

| 我想使用VB.net删除多余的空格 例如
\"The   Quick          Brown Fox\"
我想要输出
\"The Quick Brown Fox\"
谢谢, 英奇卡     
已邀请:
您可以为此使用一个简单的正则表达式:
Dim cleaned As String = Regex.Replace(input, \"\\s{2,}\", \" \")
    
我意识到这个问题已经很老了,但是还有另一个不涉及Regex的选项,或者手动遍历字符串并替换:
Private Function StripSpaces(input As String) As String
    Return String.Join(\" \", input.Split(New Char() {}, StringSplitOptions.RemoveEmptyEntries))
End Function
和C#等效:
private string StripSpaces(string input)
{
    return string.Join(\" \", input.Split((char[])null, StringSplitOptions.RemoveEmptyEntries));
}
在\5ѭ上使用\“ null \”值作为分割符会导致分割符成为所有发送到true6ѭ时返回true的字符。因此,以这种方式调用该方法将在所有空格上分割您的字符串,删除空字符串,然后将其与每个分割数组元素之间的单个空格重新连接在一起。     
您真正想要的是将任何多个空白压缩为一个空格,一种方法是搜索两个空格并用一个空格替换,直到没有两个相邻的空格为止,如下所示:
   Dim myString As String = \"The   Quick     Brown     Fox\"
   While myString.IndexOf(\"  \") <> -1
       myString = myString.Replace(\"  \", \" \")
   End While
   Console.WriteLine(myString)
但是,由于.net字符串的某些概念不统一,因此这并非万无一失,这可能会陷入无限循环,但仅适用于某些非常奇怪的输入。 编辑:使用其他正则表达式可以更快(更简单)地进行此特定处理,如其他答案所述。     
尝试这个:
Dim output As String = Regex.Replace(\"The   Quick          Brown Fox\",\"\\\\s+\" , \" \")
    

要回复问题请先登录注册