我正在为这个项目上学,我有一些问题。我目前的目标是实现一个保存和加载方法。当调用save方法时,它会将2d数组保存到1d数组(它是excel电子表格的形式),当它被要求加载时,它会显示保存的电子表格。
我知道我想首先将我的2d信息数据保存到1d数组中,但是它如何知道1d数组应该有多大?我知道我应该有一个嵌套的for循环,它遍历我的2d数组的每个部分。
你们可以提供关于如何继续创建这些方法的任何提示吗?
这是我的代码的一部分:
public class Sheet implements Savable {
public int rows;
public int cols;
Cell [][] contents;
String alph = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public Sheet (int rows, int cols) {
this.rows = rows;
this.cols = cols;
contents = new Cell [rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
contents[i][j] = new EmptyCell();
}
}
}
public String[] getSaveData() {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
}
}
return null;
}
答案 0 :(得分:0)
不确定你是指一个char的一维数组,它是一个String,还是一个String的一维数组,它是一个String []。我假设你的意思是第一个。如果行和列不会在运行期间发生更改,则无需使用数据保存它们。使用StringBuilder。
public String getSaveData() {
StringBuilder saveData = new StringBuilder();
for (int i = o; i < rows; i++) {
for (int j = 0; j < cols; j++) {
saveData.append(contents[i][j].toString());
}
}
return saveData.toString();
}
答案 1 :(得分:0)
现在这是基于假设,因为没有太多有用的信息,但我假设您正在实施方法getSaveData()
,它从{{1}获取数据在表单中将其保存到文件。
一些提示:
方法声明是它返回一个字符串数组 - 所以你必须在该方法中创建一个字符串数组,其大小与行数相同
您需要某种形式的分隔每个字符串中的数据,以便您可以重新读取它。常见的是逗号(除非您的单元格中有逗号)
当您循环将每个单元格内容附加到带分隔符的字符串
方法的伪代码:
Cells