Samuel Medhat
Samuel Medhat

Reputation: 59

Splitting a string on comma and printing the results

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

Answers (3)

Oded
Oded

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

Steve
Steve

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

bonCodigo
bonCodigo

Reputation: 14361

You need to show part not part(0)

For Each part In parts

     MsgBox(part)
    Next

Upvotes: 0

Related Questions