如何在VB.NET中将字符串转换为字符串数组?

时间:2011-07-29 05:10:09

标签: .net vb.net arrays string

好吧,我有一个函数,它将一个字符串数组作为输入...

我有一个要从该函数处理的字符串......

所以,

Dim str As String = "this is a string"

func(// How to pass str ?)

Public Function func(ByVal arr() As String)
     // Processes the array here
End Function

我也尝试过:

func(str.ToArray)  // Gives error since it converts str to char array instead of String array.

我该如何解决这个问题?

6 个答案:

答案 0 :(得分:7)

使用VB10,您可以简单地执行此操作:

func({str})

使用旧版本时,您必须执行以下操作:

func(New String() {str})

答案 1 :(得分:5)

只是实例化一个新数组,只包含你的字符串

Sub Main()
    Dim s As String = "hello world"
    Print(New String() {s})
End Sub

Sub Print(strings() As String)
    For Each s In strings
        Console.WriteLine(s)
    Next
End Sub

答案 2 :(得分:3)

使用String.Split方法拆分“空格”。更多细节在这里:

http://msdn.microsoft.com/en-us/library/system.string.split.aspx

如果逐个字符,那么编写自己的函数来做到这一点。

试试这段代码:

Dim input As String = "characters"
Dim substrings() As String = Regex.Split(input, "")
Console.Write("{")
For ctr As Integer = 0 to substrings.Length - 1
   Console.Write("'{0}'", substrings(ctr))
   If ctr < substrings.Length - 1 Then Console.Write(", ")
Next
Console.WriteLine("}")
' The example produces the following output:   
'    {'', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', 's', ''}

使用正则表达式,http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx#Y2166

答案 3 :(得分:2)

你能把这一个字符串放入数组吗?我的VB生锈了,但试试这个:

Dim arr(0) As String
arr(0) = str

func(arr)

答案 4 :(得分:1)

我不是VB专家,但这看起来对我来说是最干净的方式:

func(New String() { str })

但是,如果这对您来说不够干净,您可以使用特定于字符串的扩展方法

func(str.ToStringArray)

以通用方式:

func(str.ToSingleElementArray)

以下是后者作为扩展方法:

<Extension> _
Public Shared Function ToSingleElementArray(Of T)(ByVal item As T) As T()
    Return New T() { item }
End Function

答案 5 :(得分:-1)

你的意思是String.ToCharArray?此外,您还可以访问字符串directly中包含的字符。