Vb.net Vb 2010如何拆分(分解)字符串
根据我提供的代码,我想将一个字符串分解为两个。代码正在工作,但仅当Vb.net Vb 2010如何拆分(分解)字符串,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,根据我提供的代码,我想将一个字符串分解为两个。代码正在工作,但仅当SearchQuery包含两个短语时,代码才起作用 Private Sub SearchTxt_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles SearchTxt.PreviewKeyDown Dim SearchQuery As String = SearchTx
SearchQuery
包含两个短语时,代码才起作用
Private Sub SearchTxt_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles SearchTxt.PreviewKeyDown
Dim SearchQuery As String = SearchTxt.Text
Dim MyString As System.String
MyString = SearchQuery
Dim OutPutArray() As System.String
OutPutArray = Split(MyString, " ", -1)
''MsgBox(OutPutArray(0)) - Working
MsgBox(OutPutArray(1)) ' error - Index was outside the bounds of the array.
end sub
数组始终是基于零的(每种类型的集合都是基于零的),因此
OutPutArray(1)
尝试访问第二项而不是第一项。如果它只包含一个,则会出现异常
相反,您需要:OutPutArray(0)
如果您不知道它是否包含两个,请检查:
Dim first As String = OutPutArray(0)
Dim second As String = Nothing
If OutPutArray.Length > 1 Then
second = OutPutArray(1)
End If
另外,我建议使用.NET方法,因此String.Split
:
Dim OutPutArray As String() = MyString.Split() ' splits by white-spaces, tabs or newlines
或者,如果只希望按空格分割:
Dim OutPutArray As String() = MyString.Split({" "}, StringSplitOptions.None)
为什么不使用
String.Split(“/c)
”,而不是旧VB6天的组件?字符串是否包含空格?@Salman,目的是从空格中滑出,因此我同时查找OutPutArray(0)和OutPutArray(1),在我的情况下,我该怎么办it@user4649925:你试过什么如果OutPutArray.Length>1,则second=OutPutArray(1)
不会给出错误。但是,如果数组为空,则在OutPutArray(0)
处会出现异常。但是,String.Split
从不返回空数组。Dim MyString As System.String MyString=SearchQurry Dim OutPutArray As String()如果OutPutArray.Length>1,则Dim second As String=Nothing,然后second=OutPutArray(1)MsgBox(OutPutArray(1))'错误在这里
字符串是否为空,它不会给我错误。我哪里弄错了?@user4649925:您在MsgBox(OutPutArray(1)
处得到异常,因为它不在If
的内部。使用If OutPutArray.Length>1然后秒=OutPutArray(1)MsgBox(OutPutArray(1)如果,则结束。如果字符串为空string.Split
返回包含单个字符串的数组,该字符串为string.empty
。