C#:如何将多个字符串拆分为二维数组?

Posted

技术标签:

【中文标题】C#:如何将多个字符串拆分为二维数组?【英文标题】:C#: How to split multiple strings into 2D array? 【发布时间】:2022-01-05 21:29:27 【问题描述】:

我想根据用户输入创建一个矩阵,其中每一行都是从一串数字除以空格创建的。 (一开始用户输入矩阵的大小)。

示例输入: 1 4 6 4 进入 9 8 5 2 进入 0 3 6 1 进入

输出将是:array[1, 1] = 1 array[1,2] = 4 ... array[2,1] = 9 etc.

提前致谢!

【问题讨论】:

欢迎,请贴出你试过的代码。 我能做到的最接近的是创建一个由空格分隔的字符串数组,而我不知道如何将这些字符串划分为数组元素。 '字符串[] 输入2 = 新字符串[n]; for (int i = 0; i 【参考方案1】:

这样做的简单方法是

    读取输入 根据空格分割输入 将其转换为int 列表并将其添加到List<List<int>> 对象中。

示例: 此代码非常基本,并假设输入将基于整数和空格。您应该考虑添加检查以确保输入格式正确

List<List<int>> arr = new List<List<int>>();
while (true) 
    string line = Console.ReadLine();
    if (string.IsNullOrEmpty(line))
        break;
    arr.Add(line.Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToList());


// input:
1 2 3<enter>
4 5 6<enter>
7 8 9<enter>
<enter>

或者您可以创建一个锯齿状数组以通过 indecies 访问。 以下假设为 3 行。

int[][] arr = new int[3][];
int i = 0;
while (true) 
    string line = Console.ReadLine();
    if (string.IsNullOrEmpty(line))
        break;
    arr[i++] = line.Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToArray();

【讨论】:

以上是关于C#:如何将多个字符串拆分为二维数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何将子字符串拆分为多个块并使用 C# 将它们输入到表中?

C#将具有随机空格的字符串拆分为字符串数组[关闭]

如何在java中将二维数组拆分为多个不同大小的二维数组

c#将字符串拆分为多维数组?

如何使用 REGEX 将作者拆分为对象或数组 C#?

C# 无法通过换行符将字符串拆分为数组(来自 StreamReader)