无法接受从方法返回的二维字符串数组
Unable to accept two dimensional String Array returned from a method
首先 :-) ,我不是那么精通 java。
所以在下面的代码中,我试图打印从方法返回的二维字符串。但是做不到。获取类型不匹配错误。谁能帮忙。
public class ExcelUtilAdvanced {
public String[][] getDatafromExcel(){
int rowCount = sheet.getPhysicalNumberOfRows();
int colCount = sheet.getRow(0).getPhysicalNumberOfCells();
String[][] data = new String[rowCount-1][colCount];
Row row;
Cell cell;
for(int i=1;i<rowCount;i++) {
row = sheet.getRow(i);
for(int j=0;j<colCount;j++) {
cell = row.getCell(j);
data[i-1][j] = format.formatCellValue(cell);
}
}
System.out.println(data);
return data;
}
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
for(int i=1;i<rowCount;i++) {
for(int j=0;j<colCount;j++) {
data[i-1][j]= eua.getDatafromExcel(); //Type Type mismatch: cannot convert from String[][] to String
}
}
}
您正在将 String[][]
对象传递给 String
变量。我认为您可以直接声明和初始化 String[][]
传递该方法返回的结果的对象。
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = eua.getDatafromExcel();
}
编辑:此外,您必须修改其余代码,以便能够处理 rowCount
和 colCount
变量(也许您可以将它们作为输入参数放在第一个方法中), 因为你没有在 String[][]
声明中使用它们。
喜欢:
String[][] data = eua.getDatafromExcel(rowCount, colCount);
并且你必须在每个循环的末尾放置 System.out.println
,以便在你分配值时打印你的 String[][]
。
您不能只打印 data
变量。
一般示例:
for(int i = 1; i < rowCount; i++) {
for(int j = 0; j < colCount; j++) {
System.out.print(data[i-1][j] + " ");
}
System.out.println();
}
您可以创建一个新的二维数组来复制 getDatafromExcel():
中的内容
像这样创建一个新的二维数组:
String[][] toFill = new String[2][7];
或者如果你可以使用这个:
String[][] data = new String[rowCount][colCount];
在代码中,您的主要方法应如下所示:
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
String[][] toFill = new String[2][7];
for(int i=1;i<rowCount;i++) {
for(int j=0;j<colCount;j++) {
toFill= eua.getDatafromExcel();
}
}
}
或
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
data= eua.getDatafromExcel();
}
首先 :-) ,我不是那么精通 java。
所以在下面的代码中,我试图打印从方法返回的二维字符串。但是做不到。获取类型不匹配错误。谁能帮忙。
public class ExcelUtilAdvanced {
public String[][] getDatafromExcel(){
int rowCount = sheet.getPhysicalNumberOfRows();
int colCount = sheet.getRow(0).getPhysicalNumberOfCells();
String[][] data = new String[rowCount-1][colCount];
Row row;
Cell cell;
for(int i=1;i<rowCount;i++) {
row = sheet.getRow(i);
for(int j=0;j<colCount;j++) {
cell = row.getCell(j);
data[i-1][j] = format.formatCellValue(cell);
}
}
System.out.println(data);
return data;
}
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
for(int i=1;i<rowCount;i++) {
for(int j=0;j<colCount;j++) {
data[i-1][j]= eua.getDatafromExcel(); //Type Type mismatch: cannot convert from String[][] to String
}
}
}
您正在将 String[][]
对象传递给 String
变量。我认为您可以直接声明和初始化 String[][]
传递该方法返回的结果的对象。
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = eua.getDatafromExcel();
}
编辑:此外,您必须修改其余代码,以便能够处理 rowCount
和 colCount
变量(也许您可以将它们作为输入参数放在第一个方法中), 因为你没有在 String[][]
声明中使用它们。
喜欢:
String[][] data = eua.getDatafromExcel(rowCount, colCount);
并且你必须在每个循环的末尾放置 System.out.println
,以便在你分配值时打印你的 String[][]
。
您不能只打印 data
变量。
一般示例:
for(int i = 1; i < rowCount; i++) {
for(int j = 0; j < colCount; j++) {
System.out.print(data[i-1][j] + " ");
}
System.out.println();
}
您可以创建一个新的二维数组来复制 getDatafromExcel():
像这样创建一个新的二维数组:
String[][] toFill = new String[2][7];
或者如果你可以使用这个:
String[][] data = new String[rowCount][colCount];
在代码中,您的主要方法应如下所示:
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
String[][] toFill = new String[2][7];
for(int i=1;i<rowCount;i++) {
for(int j=0;j<colCount;j++) {
toFill= eua.getDatafromExcel();
}
}
}
或
public static void main(String[] args) {
int rowCount = 2;
int colCount = 7;
ExcelUtilAdvanced eua = new ExcelUtilAdvanced("fileName.xlsx", "sheetName");
String[][] data = new String[rowCount][colCount];
data= eua.getDatafromExcel();
}