【发布时间】:2016-05-02 22:36:44
【问题描述】:
所以我在 java 中遇到了一些麻烦。这个方法应该接受两个多维的字符串数组。此方法应该返回一个复制字符串数组。现在这两个被发送到复制方法的数组将在数组中随机生成长度。我正在尝试查看 array2 是否小于 array,如果是,则 array 将被分配 array2 的长度,我想将元素从 array 复制到 array2。如果它与array2 大于array 相反,那么我想将数组中的元素复制到array2 中,然后array2 中的剩余点将被一个* 填充。现在的问题是我不断收到超出索引范围的运行时错误。特别是我在下面用双星号表示的行(在 for 循环内)给我带来了问题。我能做些什么来解决这个问题。
public static String[][][] copy(String[][][] array, String[][][] array2){
if(array2.length < array.length){
array = new String[array2.length][array2.length][array2.length];
for(int i = 0; i < array2.length; i++){
for(int j = 0; j < array2[i].length; j++){
for(int k = 0; k < array2[i][j].length; k++){
**array2[i][j][k] = array[i][j][k];**
}
}
}
return array2;
}
if(array2.length > array.length){
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
for(int k = 0; k < array[i][j].length; k++){
**array2[i][j][k] = array[i][j][k];**
}
}
}
for(int i = array.length - 1; i < array2.length; i++){
for(int j = array[i].length - 1; j < array2.length; j++){
for(int k = array[i][j].length - 1; k < array2.length; k++){
array2[i][j][k] = "*";
}
}
}
return array2;
}
return array;
}
【问题讨论】:
-
其他人可以提供任何意见吗?
标签: java arrays multidimensional-array