Как преобразовать строку в массив строк в VB.NET? - PullRequest
4 голосов
/ 29 июля 2011

Ну, у меня есть функция, которая принимает массив строк в качестве входных данных ...

У меня есть строка для обработки из этой функции ...

Итак,

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 ]

7 голосов
/ 29 июля 2011

С VB10 вы можете просто сделать это:

func({str})

С более старой версией вам нужно будет сделать:

func(New String() {str})
5 голосов
/ 29 июля 2011

Просто создайте новый массив, включающий только вашу строку

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
3 голосов
/ 29 июля 2011

Используйте метод 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', ''}

Используя Regex, http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx#Y2166.

2 голосов
/ 29 июля 2011

Можете ли вы просто поместить эту строку в массив?Мой VB ржавый, но попробуйте это:

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

func(arr)
1 голос
/ 29 июля 2011

Я не эксперт по 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
0 голосов
/ 29 июля 2011

Вы имеете в виду как String.ToCharArray ?Также вы можете получить доступ к символам, содержащимся в строке напрямую .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...