如何在不获取nullpointerexception的情况下打印空的2d数组

时间:2015-12-21 14:10:26

标签: java multidimensional-array

我对Java相对较新,对于我需要打印2D数组的学校项目。此项目的基础是使用值null打印它。但我无法在没有获得java.lang.NullPointerException的情况下将其置于for循环中。有人可以帮忙吗?

private int ROWS;
private int COLUMNS;
private int WIDTH;

private String[][] sheet;
private String[][] values;
private int precision;

public SpreadSheet(int rows, int cols, int width, int precision) {
    this.ROWS = rows;
    this.COLUMNS = cols;
    /*this.WIDTH = width;
    this.precision = precision;*/
}

public void printSheet(){
    for (int i = 0; i < sheet.length; i++) {
        for (int j = 0; j < sheet[i].length; j++) {
            System.out.println(sheet);
        }
        System.out.println("\n");
    }
}

主要:

import java.util.Scanner;
public class DemoSpreadSheet {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    SpreadSheet sh = new SpreadSheet(4, 6, 15, 2);
    sh.printSheet();
}

}

3 个答案:

答案 0 :(得分:1)

你需要初始化你的数组。

sheet = new String[rows][cols]

这是一个例子,你在课堂上有其他错误。

答案 1 :(得分:1)

对SpreadSheet函数进行一些小改动:

public SpreadSheet(int rows;int cols;int width;int precision)
    {
      this.Sheet=new String[rows][cols];
      /*creates an array with 4 rows and 6  columns..(assuming this is what you wanted to do)*/
      }

打印纸张功能也有错误:

System.out.println(Sheet); //illogical
 /*sheet does not print the content of the array Sheet*/

将其更改为:

System.out.println(Sheet[i][j]);
/*this will print null */

答案 2 :(得分:0)

这样做(包括更好的格式):

public void printSheet(){
     for (int i = 0; i < sheet.length; i++) {
         for (int j = 0; j < sheet[i].length; j++) {
             System.out.print(sheet[i][j] + " ");
         }
         System.out.println();
     }
}

但是,您尚未为工作表指定长度。这意味着,在某些时候(最有可能是构造函数),您必须定义:

sheet = new String[rows][cols];