【问题标题】:C#: How to split multiple strings into 2D array?C#:如何将多个字符串拆分为二维数组?
【发布时间】: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

标签: c# arrays matrix


【解决方案1】:

这样做的简单方法是

  1. 读取输入
  2. 根据空格分割输入
  3. 将其转换为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();
}

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多