2017-06-04 89 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

謝謝,沒有這些限制是很容易的,但我的老師不會允許我使用它們。 –

相關問題