因为数组是需要一个长度的 在不知道的情况下是会出错的 。
如果非要用的话 那么就要指明最大长度 不然还是有下标溢出的错误。
String
excelFile="E:\\abc.xls";。
Workbook rwb = null;。
String[][] 。
str =new String[10][10];。
// 创建输入流。
InputStream stream = new 。
FileInputStream(excelFile);。
// 获取Excel文件对象。
rwb =
Workbook.getWorkbook(stream);。
// 获取文件的指定工作表 默认的第一个。
Sheet
sheet = rwb.getSheet(0);。
//获取第一行,第一列的值。
for(int 。
i=0;i<10;i++){。
StringBuffer strc00 = new 。
StringBuffer();。
for(int j=0;j<10;j++){。
Cell 。
c00 = sheet.getCell(i, j);。
strc00.append(c00.getContents()).append(" 。
");
}
str[i]= 。
strc00.toString().split(" ")。
}
for(int 。
i=0;i<10;i++)。
for(int j=0;j<10;j++){。
。
System.out.println(str[i][j]);。
} 。
}
用ARRAY定义数组也可以,只是你的定义方法及引用方法都不对。
用ARRAY无法定义二维数组,只能定义多重数组,因此不能向二维数组那样引用。
Dim PartIn, PartOut。
PartIn = Array(Array(F11, F12, F13), Array(F21, F22, F23), Array(F31, F32, F33))。
PartOut = Array(Array(F11F, F12F, F13F), Array(F21F, F22F, F23F), Array(F31F, F32F, F33F))。
For i = 0 To 2
For j = 0 To 2
If PartIn(i)(j) = PartOut(i)(j) Then。
PartIn(i)(j) = PartOut(i)(j)。
Else
PartIn(i)(j) = PartIn(i)(j) & "and" & PartOut(i)(j)。
End If
Next j
Next i
另外,为什么F11、F12、。。。不都定义成数组呢?这样用二维数组也挺方便。
Dim F(2, 2), FF(2, 2)。
Dim PartIn(2, 2), PartOut(2, 2)。
For i = 0 To 2
For j = 0 To 2
PartIn(i, j) = F(i, j)。
PartOut(i, j) = FF(i, j)。
Next j
Next i
For i = 0 To 2
For j = 0 To 2
If PartIn(i, j) = PartOut(i, j) Then。
PartIn(i, j) = PartOut(i, j)。
Else
PartIn(i, j) = PartIn(i, j) & "and" & PartOut(i, j)。
End If
Next j
Next i
利用JAVA编程实现,先将代码置于下面。
public int[][] str2int(String[][] str)。
{
int a,b;
a = str.length;。
b = str[0].length;。
int result[][] = new int[a][b];。
for(int i = 0 ; i < a ; ++ i)。
for(int j = 0 ; j < b ; ++ j)。
result[i][j] = Integer.parseInt(str[i][j]);。
return result;。
}
解释一下上面的代码,首先输入是字符串二维数组,输出就是你所需要的int二维数组。
代码中首先需要获取字符串二维数组的大小,并新建一个跟字符串二维数组同样大小的。
int数组。之后通过一个二重循环,将int二维数组相应位置的元素填上字符串二维数组。
对应位置上的元素,但是要将这个对应位置上的元素先从String类型转为int类型。
总结一下,这个方法最重要的地方就是将String类型的字符串转为int类型的数字,要。
用到的是Integer类提供的一个方法paraseInt,这个方法可以将String类型转为int类型。
这个函数的使用方法为在主函数中调用,比如下面的例子:
public static void main(String[] args)。
{
String[][] str = {{"12","22","33"},{"24","33","44"}};。
int[][] r = str2int(str);。
for(int i = 0 ; i < 2 ; ++ i)。
for(int j = 0 ; j < 3 ; ++ j)。
System.out.println(r[i][j]);。
}
public class Test { public static void main(String[] args) {。
Object[] array = new Object[5]; String mon = "Monday";。
String tue = "Tuesday";。
String wed = "Wednesday";。
String thu = "Thursday";。
String 小发猫 = "小发猫";。
array01[0] = mon;。
array01[1] = tue;。
array01[2] = wed;。
array01[3] = thu;。
array01[4] = 小发猫; /*。
* 创建二维数组
*/
for(int i = 0; i < array01.length; i++){。
String date = String.valueOf(array01[i]);。
Character[] tempArray = new Character[date.length()];。
for(int j = 0; j < tempArray.length; j++){。
tempArray[j] = date.charAt(j);。
array01[i] = tempArray;。
}
}
/*
* 查找字符'S'的个数。
*/
int count = 0; //字符's'的个数。
for(int i = 0; i < array01.length; i++){。
Character[] tempArray = (Character[])array01[i];。
for(int j = 0; j < tempArray.length; j++){。
if(tempArray[j].equals('s')){。
count++;
}
}
}
System.out.println(count); //打印结果为3。
}
C#定义二维数组是这么定义的:
string [,] ss=new string[2,2];先定义,待会在赋值。
或者string [,] ss={{aa,ff},{ee,rr},{},{},{}};定义的时候就初始化。
输入就使用for循环呗for(){for(){}}。