我有一个充满9个数字的字符串。我想用数字填充3x3数组。我设法使用foreach和2 for循环来完成它,但我觉得这很麻烦。如何修改我的代码以递归方式将值输入数组?这是我目前的代码:
int[,] matrix = new int[3, 3];
if(key.Length < 9 || key.Length > 9)
{
keyfield.GetComponent<InputField>().text = " Key Not Valid";
}
else
{
foreach(char c in key)
{
for (int k = 0; k < 3; k++)
{
for (int j = 0; j < 3; j++)
{
matrix[j, k] = c - 0;
}
}
}
}
请注意,我正在使用Unity。
答案 0 :(得分:2)
好吧,只需迭代char
中的key
并将它们分配给数组,一次一个字段。这只是计算正确的列和行的问题:
for (int i = 0; i < 9; ++i)
{
int row = i / 3;
int col = i % 3;
matrix[row, col] = (int)key[i];
}
另请注意,问题中的代码和我的答案中的代码都不能以递归方式解决问题。当方法直接或间接调用自身时,会给出递归,这不是解决此特定问题所必需的。