我将首先建议您忘记“数组”并更多地考虑“类”。Java 是一种面向对象的语言。将您想要的行为封装在一个类中。让我们称之为Tableau
。
您的班级至少需要纠正四种不同的行为:
- 从某种 Stream 或 Reader 中将值读入 Tableau(例如
PrintStream
, FileInputStream
)
- 计算 Tableau 的行和列总和
- 将 Tableau 呈现为字符串。
- 将 Tableau 写入某种 OutputStream 或 Writer。
计算机科学是将复杂的任务分解成更小、更易于管理的部分。这叫做“分解”。这是学习它的好机会。
所以这是一个开始:
package model;
public class Tableau {
private int numRows;
private int numCols;
private int[][] values;
public Tableau(int numRows, int numCols) {
if (numRows <= 0) throw new IllegalArgumentException("numRows must be positive");
if (numCols <= 0) throw new IllegalArgumentException("numCols must be positive");
this.numRows = numRows;
this.numCols = numCols;
this.values = new int[numRows+1][numCols+1];
}
// You add the rest
public String toString() {
StringBuilder builder = new StringBuilder();
return builder.toString();
}
}