Преобразование строки в массив символов - PullRequest
7 голосов
/ 23 марта 2012

Допустим, у меня есть такая строка.

Dim str As String = "code"

Мне нужно разбить эту строку на массив символов вроде этого,

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

Как я могу это сделать?

Ответы [ 5 ]

18 голосов
/ 23 марта 2012

Каждая строка является неявным массивом символов.Таким образом, вы можете получить 3-й символ:

Dim char3 = str(2)

Редактировать : просто ради полноты.Вы также можете использовать String.ToCharArray для преобразования экземпляра строки в новый экземпляр char-array.Основное преимущество использования ToCharArray состоит в том, что полученный вами массив символов является изменяемым, что означает, что вы можете изменять каждый отдельный символ.

Обратите внимание, что вы также можете использовать LINQ.Например, если вам нужны первые три символа строки:

Dim firstThree As Char() = str.Take(3).ToArray()
7 голосов
/ 23 марта 2012
dim chars as Char() = str.ToCharArray()
1 голос
/ 15 января 2015

Я провел несколько тестов, и ToCharArray примерно в 30 раз быстрее, чем ToArray LINQ.

1 голос
/ 08 января 2013

Ссылка @ AlexeiLevenkov,

Вы можете использовать String.ToCharArray преобразовать его в массив символов или использовать ToArray если тебе нравится LINQ больше:

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

"foo".ToArray()

(я добавил вышеупомянутую альтернативу, так как дублирующий вопрос будет вскоре закрыт; стоит сохранить альтернативу LINQ .)

0 голосов
/ 23 марта 2012

Попробуйте:

Dim str As String = "code"
' Use For Each loop on string.
For Each element As Char In str 
Console.WriteLine(element)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...