我试图将1d数组中的值转换为2d数组,但跳过我不想要的值。在前面的方法中,我将无效值转换为-1d,1d数组dimtoke,现在我正在尝试填充我的2d数组,称为维度,并尝试跳过无效-1并继续使用下一个有效值填充数组。
// Taking valid line segments and putting them in 2d array.
dimensions = new int[countLines][4];
for (int i = 0; i < dimensions.length; i++) {
for (int j = 0; j < dimensions[0].length; j++) {
if(dimtoke[n] != -1){
dimensions[i][j] = dimtoke[n];
n++;
}
else
n++;
}
}
我的问题是,不是用下一个有效值填充2d数组,而是填充0,我需要下一个值。
答案 0 :(得分:1)
问题似乎是当你找到-1时你还在递增j变量。像这样改变你的代码。
dimensions = new int[countLines][4];
for (int i = 0; i < dimensions.length; i++) {
for (int j = 0; j < dimensions[0].length; j++) {
if(dimtoke[n] != -1){
dimensions[i][j] = dimtoke[n];
}
else
j--;
}
n++;
}
无论条件如何,我也把n ++移出了你的名字。