Converting a string to a char array

2019-01-25 13:12发布

问题:

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?

回答1:

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()


回答2:

dim chars as Char() = str.ToCharArray()


回答3:

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.)



回答4:

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



回答5:

Try:

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