因此,我已经有了一个读取文件的方法,该文件已转换为2d数组(因此,数组的尺寸每次可能会有所不同,具体取决于我使用的文件)。现在,我试图使用此方法绘制一个矩形,它将无法正常工作。我的代码是:

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/2R/2时,您执行integer division,因此您可能会意外舍入。要解决此问题,您可以将CR初始化为double

08-03 20:28