8

Let's say I have a string like this.

Dim str As String = "code"

I need to break this string down to an array of characters like this,

{"c", "o", "d", "e"}

How can I do this?

0

5 Answers 5

19

Every string is an implicit char-array. So you can get the 3rd char by:

Dim char3 = str(2)

Edit: Just for the sake of completeness. You can also use String.ToCharArray to convert the string instance to a new char-array instance. The core benefit of using ToCharArray is that the char-array you receive is mutable, meaning you can actually change each individual character.

Note that you could also use LINQ. If you for example want the first three characters of a String:

Dim firstThree As Char() = str.Take(3).ToArray()
Sign up to request clarification or add additional context in comments.

1 Comment

That's all I wanted to know. :D I got it now. Thank you.
9
dim chars as Char() = str.ToCharArray()

1 Comment

Tried this now and it works too. :) Always good to know extra ways. Thank you.
1

Try:

Dim str As String = "code"
' Use For Each loop on string.
For Each element As Char In str 
Console.WriteLine(element)

Comments

1

Referencing @AlexeiLevenkov,

You can use String.ToCharArray to convert it to array of characters, or use ToArray if you like LINQ more:

Dim delimStr As String = " ,.:"
Dim delimiter As Char() = delimStr.ToCharArray()

"foo".ToArray()

(I added the above alternative as the duplicate question will be soon closed; it is worth keeping the LINQ alternative.)

Comments

1

I did some benchmarking and ToCharArray is approximately 30 times faster than LINQ's ToArray.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.