-1

如何转换像这样的字符串:

Dim myString = "TEST"

到字符串数组,有类似的东西:

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

谢谢

4

4 回答 4

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()
于 2013-07-22T08:56:44.230 回答
1

决定对最有效的方法进行测试。MarcinJuraszek 的方法,超过 10,000,000 次迭代,平均耗时约 4000 毫秒。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
于 2013-07-22T09:38:09.010 回答
1

在文件的顶部:

Imports System.Linq

然后你可以使用:

Dim myStringArray = myString.Select(Function(c) CStr(c)).ToArray()
于 2013-07-22T08:48:08.310 回答
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

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

另外:创建一个字符串类型的数组,其中每个字符串只有 1 个字符,这很愚蠢。

于 2013-07-22T10:03:28.197 回答