Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将字符串转换为字符串数组_Vb.net_String - Fatal编程技术网

Vb.net 如何将字符串转换为字符串数组

Vb.net 如何将字符串转换为字符串数组,vb.net,string,Vb.net,String,如何转换字符串,如: Dim myString = "TEST" Dim myStringArray = new String() {"T","E","S","T"} 要创建字符串数组,请执行以下操作: Dim myString = "TEST" Dim myStringArray = new String() {"T","E","S","T"} 感谢文件顶部的: Imports System.Linq 然后您可以使用: Dim myStringArray = myString.Sel

如何转换字符串,如:

Dim myString = "TEST"
Dim myStringArray = new String() {"T","E","S","T"}
要创建字符串数组,请执行以下操作:

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

感谢文件顶部的

Imports System.Linq
然后您可以使用:

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

如果您总是对每个项目使用一个元素,我建议您获取一个char数组:

Dim myString as String = "TEST"
Dim myCharArray as Char() = myString.ToCharArray() '<= char array "T"c, "E"c, "S"c, "T"c

决定做一个最有效的方法测试。MarcinJuraszek的方法迭代次数超过10000000次,平均耗时约4000ms。费边·比格勒的方法平均耗时约3200毫秒

Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
    myStringArray(count) = myString.Substring(count, 1)
Next
Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
    myStringArray(count) = myString(count)
Next
以下方法平均耗时约1500ms

Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
    myStringArray(count) = myString.Substring(count, 1)
Next
Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
    myStringArray(count) = myString(count)
Next
此外,使用以下各项平均需要约1200毫秒

Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
    myStringArray(count) = myString.Substring(count, 1)
Next
Dim myStringArray(myString.Length - 1) As String
For count As Integer = 0 To myString.Length - 1
    myStringArray(count) = myString(count)
Next

简单地说:字符串本身就是一个字符数组。可以在字符串上循环,如下所示:

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
输出:

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


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

如果您总是希望每个元素都包含一个字符,那么您正在寻找一个字符数组。请尝试:myStringArray。split@PhongVo那是不可能的。如果没有分隔符,则无法拆分。@PhongVo还“开始注释,因此您的代码基本上就是myStringArray.split,因为我通常用C编写代码,所以我不确定VB.NET中的语法,但我认为C和VB对此有相同的解决方案。我在“Functionc”上有预期的表达式。我使用的是VS2005,可能它不兼容。Linq仅在.Net 3.5及以上版本中可用。+1但在Vb.Net中,定义数组长度时,输入的数字是最大索引,而不是项目数,因此第一个应该是:Dim mystringaraymystring.length-1 As StringExcellent,这正是我想做的,不需要首先转换为字符数组,字符串实现IEnumerableOf Char。只需将for循环用于字符串,而无需首先转换为字符数组。见Steven Liekens的回答。