为什么不是';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",它就会显示结果矩阵。
我想如果我(在方法中)返回"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