我正在编写此代码以将一串数字格式化为矩阵。我无法输出格式化的矩阵。我需要一些帮助。
这是我的主要内容:
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;然后它会显示结果矩阵。
答案 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