打印出2d字符數組並不困難,但我需要這樣做的方式似乎是這樣。打印2d字符數組
我目前的目標是初始化一個二維字符數組,使每個單元格都包含' - '。這必須在構造方法中完成。以下是我到目前爲止。
public class GameOfLife {
public final int MAX_SIZE = 12;
// instance variables
private char [][] current = new char[MAX_SIZE][MAX_SIZE];
private char [][] next = new char[MAX_SIZE][MAX_SIZE];
Scanner keyboard = new Scanner(System.in);
/**
* Constructor for objects of class GameOfLife.
* Initializes the current array to '-'.
*/
public void GameOfLife() {
for (int i = 0; i < MAX_SIZE; i++){
for (int j = 0; j < MAX_SIZE; j++){
current [i][j] = '-';
}
}
@Override public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < MAX_SIZE; i++){
for (int j = 0; j < MAX_SIZE; j++){
sb.append(current[i][j]);
sb.append(" ");
}
sb.append("\n"); // add new line
}
return sb.toString(); // convert to String and return
}
}`
我知道如何正確地打印它,如果它只是打印在此方法中;但是,我必須按照以下方式使用「GameOfLife」構造函數。下一個代碼位於驅動程序類中,稱爲「gameoflifedriver」。
// Create a GameOfLife object
GameOfLife lifeGame = new GameOfLife();
System.out.print(lifeGame);
是我遇到的問題是,lifeGame將無法打印,並出現一個奇怪的錯誤信息 - GameOfLife @ 5d3892b3。我知道有辦法打印它,但我無法更改驅動程序類中的任何代碼 - 因此所有編輯必須位於GameOfLife代碼中。有什麼想法嗎?
您需要在'GameOfLife'類中重寫'toString()'方法。您得到的輸出來自從「Object」繼承的輸出。 –