dim a as string = " wilcome to sa WeCame "
期望的结果:
"Wilcome to sa WeCame"
答案 0 :(得分:2)
您可以使用System.Text.RegularExpressions.Regex.Replace
Dim a As String = " wilcome to sa WeCame "
Dim cleanedString As String = Regex.Replace(a, "\s{2,}", " ").Trim()
答案 1 :(得分:2)
您可以拆分字符串并再次组装。值得注意的是,Split - 方法存在重载,允许您指定在拆分字符串时更改行为的选项。在这种情况下,应指定StringSplitOptions.RemoveEmptyEntries:
Dim a As String = " wilcome to sa WeCame "
Dim parts = a.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
Dim result = String.Join(" ", parts)
答案 2 :(得分:0)
进行大多数文本操作的最简单方法是通过regular expressions。在.NET中,可以在System.Text.RegularExpressions
下找到正则表达式库。确保至少学习它的基础知识,它是程序员不可或缺的工具。
匹配两个或多个空格的基本模式非常简单:" +"
。那就是:一个空间,再加上至少一个空间。另一种写作方式是" {2,}"
。结果如下:
dim a = " wilcome to sa WeCame "
dim result = Regex.Replace(a, " +", " ")
不幸的是,这还不够:
Console.WriteLine("[{0}]", result)
' [ wilcome to sa WeCame ]
搅拌器的两端都有多余的空间。现在,我们可以在正则表达式中获得(几乎)任意幻想,并且绝对有可能修复我们的表达式来处理它。 1 然而,有一种更简单的方法:Trim()
结果字符串:
dim result = Regex.Replace(a, " +", " ").Trim()
在一周的任何一天,简单性都胜过聪明。今天是星期五。
1 只是为了好玩,这是一种方式:
dim result = Regex.Replace(text, "((^) +)|( +($))|(( ) +)", "$2$4$6")
这使用以下事实:在.NET 中使用正则表达式中的括号捕获与括号内的内容对应的匹配文本。在替换字符串中,我们可以插入捕获的部分。
拼图中的第二部分是^
匹配字符串的起始位置,$
匹配结尾。这样,我们有三种选择:匹配字符串的开头后跟空格,或者匹配结尾,前面是空格,或匹配一个空格后跟更多空格。然后在开头或一个空格(取决于匹配的内容)中替换所有内容。