为什么不是';t此矩阵代码输出

本文关键字:代码 输出 为什么不 | 更新日期: 2023-09-27 18:20:58

我写这段代码是为了将一串数字格式化为矩阵。我无法让它输出格式化的矩阵。我需要一些帮助。

这是我的主菜:

static void Main(string[] args)
{
    string text = "A = [5 4 1; 3 6 1; 2 3 9]";
    Console.WriteLine("Original text: '{0}'", text);
    Matrix calling = new Matrix(text);
    calling.GetMatrix2(text);
}

这是我的课:

class Matrix
{
    private string textt;
    public Matrix(string text1)
    {
        textt = text1;        
    }
    public string[,] GetMatrix2(string text)
    {
        char[] delimiter1 = { '[', ']' };
        char[] delimiter2 = { ';' };
        char[] delimiter3 = { ' ' };
        string[][] words = text.Split(delimiter1)[1]
                               .Split(delimiter2, StringSplitOptions.RemoveEmptyEntries)
                               .Select(x => x.Split(
                                        delimiter3, StringSplitOptions.RemoveEmptyEntries))
                               .ToArray();
        string[,] matrix = new string[words.Length, words[0].Length];
        for (int i = 0; i < words.Length; ++i)
        {
            for (int j = 0; j < words[i].Length; ++j)
            {
                matrix[i, j] = words[i][j];
            }
        }
        return matrix;
    }
}

我是不是说错了?我想,如果我(在方法中)返回"matrix",然后调用该方法"Getmatrix2",它就会显示结果矩阵。

为什么不是';t此矩阵代码输出

我想如果我(在方法中)返回"matrix",然后调用方法"Getmatrix2",则它将显示结果矩阵。

为什么会这样?你没有在任何地方打印任何东西,既不是为了调试也不是为了控制台,你只是将锯齿状阵列转换为2D阵列。简单地调用一个方法不会无缘无故地打印出它的值。

您缺少的是在2D数组上进行迭代并打印出每个值。如果你想让它看起来像NxM矩阵:

var matrix = calling.GetMatrix2(text);
for (int i = 0; i < matrix.GetLength(0); i++)
{
    for (int j = 0; j < matrix.GetLength(1); j++)
    {
        Console.Write("{0} ", matrix[i, j]);
    }
    Console.WriteLine();
}

这产生:

5 4 1 
3 6 1 
2 3 9