无法填充二维数组
Trouble populating 2d array
我正在尝试在 java 中为数独板填充一个二维数组。这些数字来自一个 csv 文件。问题是代码只读取前四个数字,然后再次从 0 重新开始新行。我该如何阻止这种情况发生,并让它继续到数字的末尾?
String[] lines = Cell.toCSV().split(",");
int[] intArray = new int[lines.length];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = Integer.parseInt(lines[i]);
} //convert string to int
int[][] dataArray = new int[4][4]; //4x4 sudoku game
for (int col = 0; col < size; col++) {
for (int row = 0; row < dataArray[col].length; row++) {
dataArray[col][row] = intArray[row];
}
原始数组需要一个单独的计数器:
int index = 0;
for (int col = 0; col < dataArray.length; col++) {
for (int row = 0; row < dataArray[col].length; row++) {
dataArray[col][row] = intArray[index++];
}
这是假设 intArray
有足够的值来填充二维数组。您可能应该在此循环之前验证这一点。
顺便说一句,二维数组的第一维通常被认为是行,而不是列,所以你的循环变量名称有点混乱。
我正在尝试在 java 中为数独板填充一个二维数组。这些数字来自一个 csv 文件。问题是代码只读取前四个数字,然后再次从 0 重新开始新行。我该如何阻止这种情况发生,并让它继续到数字的末尾?
String[] lines = Cell.toCSV().split(",");
int[] intArray = new int[lines.length];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = Integer.parseInt(lines[i]);
} //convert string to int
int[][] dataArray = new int[4][4]; //4x4 sudoku game
for (int col = 0; col < size; col++) {
for (int row = 0; row < dataArray[col].length; row++) {
dataArray[col][row] = intArray[row];
}
原始数组需要一个单独的计数器:
int index = 0;
for (int col = 0; col < dataArray.length; col++) {
for (int row = 0; row < dataArray[col].length; row++) {
dataArray[col][row] = intArray[index++];
}
这是假设 intArray
有足够的值来填充二维数组。您可能应该在此循环之前验证这一点。
顺便说一句,二维数组的第一维通常被认为是行,而不是列,所以你的循环变量名称有点混乱。