如何转换像这样的字符串:
Dim myString = "TEST"
到字符串数组,有类似的东西:
Dim myStringArray = new String() {"T","E","S","T"}
谢谢
如果您总是每个项目使用一个元素,我建议您获取一个 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()
决定对最有效的方法进行测试。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
在文件的顶部:
Imports System.Linq
然后你可以使用:
Dim myStringArray = myString.Select(Function(c) CStr(c)).ToArray()
简单地说:一个字符串本身就是一个数组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 个字符,这很愚蠢。