Arrays 将文本拆分为二维数组

Arrays 将文本拆分为二维数组,arrays,vb.net,string,split,Arrays,Vb.net,String,Split,我正在尝试将文本块拆分为二维数组。我知道如何将一行拆分为一个单词数组,我知道如何将多行拆分为一个行数组,但我想同时执行这两项操作 例如,我想要这个: 蒂姆很好 吉姆很刻薄 将成为 ((蒂姆,很好)(吉姆,很卑鄙) 到目前为止,我已经能够使用 Str1.Split(new String() {Environment.NewLine}, StringSplitOptions.None) 要将示例字符串转换为: (蒂姆很好,吉姆很刻薄) 我使用了Str1.Split将“Tim is nice”转换为

我正在尝试将文本块拆分为二维数组。我知道如何将一行拆分为一个单词数组,我知道如何将多行拆分为一个行数组,但我想同时执行这两项操作

例如,我想要这个:

蒂姆很好
吉姆很刻薄

将成为

((蒂姆,很好)(吉姆,很卑鄙)

到目前为止,我已经能够使用

Str1.Split(new String() {Environment.NewLine}, StringSplitOptions.None)
要将示例字符串转换为:

(蒂姆很好,吉姆很刻薄)

我使用了Str1.Split将“Tim is nice”转换为

(蒂姆,很好)

另外,如果我的任何代码语法不好或类似,请告诉我,我主要是Python程序员。

这不是2D数组:

((蒂姆,很好)(吉姆,很卑鄙)

这是一个锯齿状数组或数组数组。由于每行/每句话的字数可能不尽相同,因此这是一个更好的选择。例如,您将有一个2的数组来容纳每个“行”,然后每个“行”将容纳一个包含任意多个单词的数组

Dim original = "Tim is nice" & Environment.NewLine & "Jim is very mean"

Dim lines = original.Split(New String() {Environment.NewLine.ToString},
                            StringSplitOptions.RemoveEmptyEntries)

Dim results(lines.Count - 1)() As String
For n As Int32 = 0 To lines.Count - 1
    ' store array of words to results(n)
    results(n) = lines(n).Split(" "c)
Next
' glue a line back together and show it
Console.WriteLine(String.Join(" ", results(1)))
results(0)
将保存Tim单词,
results(1)
将保存Jim单词。(书面记录的)结果:

吉姆很刻薄


第一个块是如何存储的/它在哪里?它在长文本中有换行符吗?@puropoix它存储在带有换行符的字符串变量中。我可以用以下命令分隔行:Str1.Split(new String(){Environment.NewLine},StringSplitOptions.None)将其添加到问题()中,这样我们就知道起点是什么了。@puropoix我做到了,感谢您的快速响应btwSo结果(0,2)会“很好”吗?另外,计数函数和长度函数之间的区别是什么?
结果(0,2)
如果是2D数组则可以工作,
结果(0)(2)
将是
“nice”
。长度和计数之间没有真正的区别。Count是一种扩展方法,它在语法上允许数组引用匹配其他现代集合。好的,谢谢,这正是我想要的。作为旁注,我处理的数据在每行上的字数总是相同的。使用2d数组而不是锯齿状数组会有什么建议吗?老实说,我只会对静态项使用数组:
Private Stooges As String()={“Larry”、“Moe”、“Curly”}
其他大多数情况下,我都会使用
List(of T)
这里,可能是
List(of String())
:字数可能是一样的,但允许未知/任意行数。是的,我还刚刚开始学习VB。我知道我总是至少有一行数据,最多40行,而且它们的字数都是一样的。我使用单词数组是因为这是Split通常创建的,不知道哪一个更适合我的情况