为什么这个Matrix代码没有输出?

时间:2015-11-08 08:38:42

标签: c# string parsing matrix split

我正在编写此代码以将一串数字格式化为矩阵。我无法输出格式化的矩阵。我需要一些帮助。

这是我的主要内容:

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;
    }
}

我说错了吗?我想如果我返回&#34;矩阵&#34;(在方法中)然后调用该方法&#34; Getmatrix2&#34;然后它会显示结果矩阵。

1 个答案:

答案 0 :(得分:1)

  

我想如果我返回“矩阵”(在方法中)然后调用它   方法“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