Reputation: 59
I am using the following code to split a string and retrieve them:
Private Sub Button1_Click(sender As Object, e As EventArgs)
Handles Button1.Click
Dim s As String = "a,bc,def,ghij,klmno"
Dim parts As String() = s.Split(New Char() {","c})
Dim part As String
For Each part In parts
MsgBox(part(0))
Next
End Sub
But the message box shows only the first character in each splitted string (a,b,d,g,k)
.
I want to show only the first word, what am I doing wrong?
Upvotes: 4
Views: 33354
Reputation: 498992
You already have each part - just display it:
For Each part In parts
MsgBox(part)
Next
part(0)
will return the first item in the character collection that is a string.
If you want a specific index into the returned string array (as suggested by your comment), just access it directly:
Dim parts As String() = s.Split(New Char() {","c})
Dim firstPart As String = parts(0)
Dim thirdPart As String = parts(2)
Upvotes: 2
Reputation: 216293
It is not clear from your question, but if you want only the first word in your array of strings then no need to loop over it
Dim firstWord = parts(0)
Console.WriteLine(firstWord) ' Should print `a` from your text sample
' or simply
Console.WriteLine(parts(0))
' and the second word is
Console.WriteLine(parts(1)) ' prints `bc`
Upvotes: 5
Reputation: 14361
You need to show part
not part(0)
For Each part In parts
MsgBox(part)
Next
Upvotes: 0