所以即时通讯试图弄清楚如何从给定的数组中打印特定的列,并且即时通讯完全卡住了。 香港专业教育学院设法打印出整个矩阵,但没有设法在特定列上进行打印。
这是上学的
public class ex_1 {
public static void main(String[] args) {
int[][] arr = {{-1, -1, 1, 2, 3, -1},
{-1, 4, 5, 1, -1, -1},
{-1, -1, 6, 5, 4, 3},
{-1, 2, 5, 3},
{1, 2, 1}};
getNumFromCol(arr, 1);
}
public static int getNumFromCol(int[][] mat, int col) {
int temp = 0;
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat[i].length; j++) {
if (mat[i][j] != -1) {
temp = mat[col][j];
}
}
System.out.print(temp);
}
return temp;
}
}
422
答案 0 :(得分:-1)
访问2D数组matrix
时,您需要输入matrix[i][j]
,其中i
是行号,j
是列号。
因此,如果要打印某一列col
,则需要在矩阵中每一行的col
位置打印该项目。看起来像这样:
public static void printColumn(int[][] matrix, int col) {
for (int[] row: matrix) {
System.out.println(row[col]);
}
}
如果您希望列的格式为 pretty ,则可以使用StringBuilder逐步构建输出。例如,如果您希望将列的格式设置为[1, 2, 3, 4, 5]
,则其外观应如下所示
public static void printColumn(int[][] matrix, int col) {
StringBuilder sb = new StringBuilder();
sb.append("[ ");
for (int[] row: matrix) {
sb.append(row[col]).append(' ');
}
sb.append(']');
System.out.println(sb.toString());
}
答案 1 :(得分:-1)
首先,您不需要执行嵌套循环。如果要在整个矩阵上进行迭代,则需要嵌套循环-一个用于X,一个用于Y,但是由于您已经知道该列,因此一个循环就足够了。
for (int j = 0; j < mat[col].length; j++) {
temp = mat[col][j];
System.out.println(temp);
}