2017-06-04 68 views
-3

我是一名编程学生,所以我开始使用vb.net作为第一语言,我需要一些帮助。VB.NET - 删除句子中单词之间的多余空格

我需要知道如何删除句子中单词之间的多余空格,只使用这些字符串函数:Trim,instr,char,mid,val和len。

我做了一部分代码,但它不起作用,谢谢。 enter image description here

+0

'cleantext'在例程开始前没有任何东西,没有东西不是空字符串,这是不是一个'NullReferenceException'?如果你想清除一个'TextBox',把它的'Text'设置为'“”'(或者如果你愿意的话,可以是'String.Empty')。 – Mike

+0

https://dotnetfiddle.net/k5UoI9小提琴使用https://stackoverflow.com/questions/20977246/replacing-multiple-spaces-into-just-one –

+0

中给出的答案创建@BryanDellinger OP声明了他允许的功能使用。 – Mike

回答

0

为您敲定了一个快速程序。

Public Function RemoveMyExcessSpaces(str As String) As String 
    Dim r As String = "" 
    If str IsNot Nothing AndAlso Len(str) > 0 Then 
     Dim spacefound As Boolean = False 
     For i As Integer = 1 To Len(str) 
      If Mid(str, i, 1) = " " Then 
       If Not spacefound Then 
        spacefound = True 
       End If 
      Else 
       If spacefound Then 
        spacefound = False 
        r += " " 
       End If 
       r += Mid(str, i, 1) 
      End If 
     Next 
    End If 
    Return r 
End Function 

我认为它符合您的条件。

希望有所帮助。

-2

对这个问题有一个非常简单的答案,有一个字符串方法,允许您删除字符串中的这些“白色空间”。

Dim text_with_white_spaces as string = "Hey There!" 
Dim text_without_white_spaces as string = text_with_white_spaces.Replace(" ", "") 
'text_without_white_spaces should be equal to "HeyThere!" 

希望它有帮助!

+0

您回答的问题是它删除所有空格。问题是如何删除多余的空格。 –

0

除非使用这些VB6方法是必需的,这里有一个单行的解决方案:

TextBox2.Text = String.Join(" ", TextBox1.Text.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)) 

在线测试:http://ideone.com/gBbi55

  • String.Split()分割的是特定的字符或子字符串(在这种情况下是空格)并在中间创建一个字符串部分的数组。 I.e:“Hello There” - > {“Hello”,“There”}

  • StringSplitOptions.RemoveEmptyEntries从结果拆分数组中删除任何空字符串。双空格将在分割时创建空字符串,因此您将使用此选项将它们除去。

  • String.Join()将从数组中创建一个字符串,并将每个数组条目与指定的字符串(本例中为单个空格)分开。

+0

刚刚意识到这与@BryanDellinger在他的评论中分享的代码非常相似......在发布之前没有阅读评论。 ;) –

+0

谢谢,没有这些限制是很容易的,但我的老师不会允许我使用它们。 –

相关问题