如何将String转换为String数组

时间:2013-07-22 08:46:00

标签: vb.net string

如何转换字符串如:

Dim myString = "TEST"

到String数组,有类似的东西:

Dim myStringArray = new String() {"T","E","S","T"}

由于

4 个答案:

答案 0 :(得分:1)

位于文件顶部:

Imports System.Linq

然后你可以使用:

Dim myStringArray = myString.Select(Function(c) CStr(c)).ToArray()

答案 1 :(得分:1)

如果你总是每个项目使用一个元素,我建议你得到一个char数组:

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

或者将char数组转换为字符串数组:

Dim strings as new List(Of String)
For each c as Char in MyCharArray
       strings.add(c.ToString())
Next
strings.ToArray()

答案 2 :(得分:1)

决定对最有效的方法进行测试。 MarcinJuraszek的方法,超过10,000,000次迭代,平均花费了大约4000ms。 Fabian Bigler的方法平均花费了大约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

答案 3 :(得分:0)

简单地说:字符串本身就是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

除非您打算将结果传递给只接受char数组输入的函数(例如ToCharArray()),否则通常不需要调用String.Split()

另外:创建一个string类型的数组,其中每个字符串只有1个字符就是傻了。