我在VB中将一个文本框的内容拆分为其他文本框,我正在使用一个空格作为拆分发生的地方。由于原始文本可以有不同数量的空格,但我知道最大值为8,VB是否有办法忽略额外的拆分命令而不是显示为错误?
感谢。
代码:
Dim strA1 As String = TrackABox.Text
Dim splitA1 As String() = strA1.Split(" ")
A1.Text = splitA1(0).ToString()
A2.Text = splitA1(1).ToString()
A3.Text = splitA1(2).ToString()
A4.Text = splitA1(3).ToString()
A5.Text = splitA1(4).ToString()
A6.Text = splitA1(5).ToString()
A7.Text = splitA1(6).ToString()
A8.Text = splitA1(7).ToString()
在某些情况下,可能不需要拆分6和7。
答案 0 :(得分:1)
String.Split方法已经采用参数来限制项目数
Public Function Split ( _
separator As Char(), _
count As Integer _
) As String()
If (splitA1.Length >= 8) Then A8.Text = splitA1(7)
答案 1 :(得分:1)
准备一个文本框数组,然后使用一个循环来获得分割结果中存在的项目数
Dim strA1 As String = TrackABox.Text
Dim splitA1 As String() = strA1.Split(" ")
Dim ctrlText As TextBox() = new TextBox(){A1, A2, A3, A4, A5, A6, A7,A8}
For x as Integer = 0 to splitA1.Length - 1
ctrlText(x).Text = splitA1(x)
Next
通过这种方式,splitA1
数组上的循环用于在当前循环位置提取字符串,并将其分配给TextBoxes数组的相应Text属性。
还要考虑没有检查splitA1
数组的长度,因为你说它可能有8个或更少的元素,文本框数组总是足够大以包含分裂的子串。您可以添加一个关于此的检查或(如另一个答案中所述)使用Split函数重载将结果数组限制为8个元素。 Split(" ", 8)
答案 2 :(得分:0)
您可以在拆分字符串时排除空/空白项目,只需使用正确的Split
方法重载。
Dim StringParts As String() =
"This is a too white-spaced string".
Split({" "c}, StringSplitOptions.RemoveEmptyEntries)
For Each Part As String In StringParts
MessageBox.Show(String.Format("""{0}""", Part))
Next Part
输出:
"This"
"is"
"a"
"too"
"white-spaced"
"string"