我对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();
}
}
答案 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];