Как преобразовать строку типа:Как преобразовать строку в массив строк
Dim myString = "TEST"
Чтобы массив строк, чтобы иметь что-то вроде:
Dim myStringArray = new String() {"T","E","S","T"}
Благодарности
Как преобразовать строку типа:Как преобразовать строку в массив строк
Dim myString = "TEST"
Чтобы массив строк, чтобы иметь что-то вроде:
Dim myStringArray = new String() {"T","E","S","T"}
Благодарности
Решили сделать тест для наиболее эффективного метода. Метод Марцина Юрашека, более 10 000 000 итераций, в среднем составлял 4000 м. Метод Фабиана Биглера в среднем составлял 3200 м.
Ниже приведен метод в среднем 1500 м.
Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
myStringArray(count) = myString.Substring(count, 1)
Next
Также, используя нижеследующее, требуется ~ 1200 мс в среднем.
Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
myStringArray(count) = myString(count)
Next
+1, но в Vb.net, когда вы определяете длину массива, вводимый вами номер является максимальным индексом, а не количеством элементов, поэтому первое должно быть: 'Dim myStringArray (myString.Length - 1) As String' – SysDragon
Я согласен, что это самый эффективный метод, спасибо – Jils
Хорошая точка SysDragon. Ответ отредактирован для отражения. – anothershrubery
В верхней части файла:
Imports System.Linq
А затем y ожно использовать:
Dim myStringArray = myString.Select(Function(c) CStr(c)).ToArray()
У меня есть «выражение ожидаемое» в «Функция (c)». Я использую VS2005, возможно, его несовместимо. – Jils
Linq доступен только в .Net 3.5 и выше. – anothershrubery
Если вы всегда используете один элемент за единицу, я хотел бы предложить вам, чтобы получить массив символов:
Dim myString as String = "TEST"
Dim myCharArray as Char() = myString.ToCharArray() '<= char array "T"c, "E"c, "S"c, "T"c
Доступ к вашим гольцов как строки:
For each c as Char in MyCharArray
c.ToString() '<= your String
Next
Или преобразуйте массив символов в строковый массив:
Dim strings as new List(Of String)
For each c as Char in MyCharArray
strings.add(c.ToString())
Next
strings.ToArray()
Отлично, Это именно то, что я хочу сделать – Jils
Нет необходимости конвертировать в массив символов сначала, строки реализуют IEnumerable (Of Char). Вы можете просто использовать цикл for со строкой, не обращаясь сначала к массиву символов. См. Ответ Стивена Ликенса. –
Проще говоря: строка сама по себе представляет собой массив из Char
. Вы можете перебираем строки следующим образом:
For Each character As Char In "TEST"
Console.WriteLine(character)
Next
Или доступа символы по их индексу:
For position As Integer = 0 To ("TEST".Length - 1)
Console.WriteLine("TEST"(position))
Next
Выход:
T E S T
Вы вообще не необходимо позвонить ToCharArray()
, если вы не намерены передать результат функции, которая принимает только входы массива char (e .г. String.Split()
).
Также: создание массива строки типа, где каждая строка имеет только 1 символ, просто глупо.
Вы ищете массив символов, если вы всегда хотите, чтобы каждый элемент содержал один символ. –
Не могли бы вы попробовать: 'myStringArray.split ('')' –
@PhongVo Это невозможно. Вы не можете разделить без разделителя. –