所以我已经有了一个读取文件的方法,并将其转换为一个二维数组(因此数组的尺寸可能每次都不同,这取决于我使用的文件)。现在我想用这个方法画一个矩形,但它不工作。我的代码是
public static void drawBoard(String [][] board) {
for (int i = 0; (i < board.length); i++) { //line 88
for (int j = 0; (j < board[0].length); j++) {
int r = board.length;
int c = board[0].length;
double R = new Double(r);
double C = new Double(c);
StdDraw.setXscale(0,C);
StdDraw.setYscale(0,R);
StdDraw.setCanvasSize(500,500);
StdDraw.setPenRadius(0.05);
StdDraw.setPenColor(StdDraw.BLUE);
StdDraw.rectangle((C/2), (R/2), (C/2), (R/2));
StdDraw.close();
}
}
}
我该怎么做才能解决这个问题?它说错误在第88行,是 "java.lang.NullPointerException "错误。
StdDraw.rectangle
期待输入参数类型为 double
. 你把类型为 int
. 这是好的,但你可能不想这样做。当计算 C/2
和 R/2
你做 整数除法 因此,你可能会意外地四舍五入。为了解决这个问题,你可以初始化 C
和 R
作为 double
.