所以我必须编写一个数组的方法,从i到j行,并将这些行复制到一个新数组。这就是我到目前为止所得到的
public static void getRows(int i, int j, int[][] array){
int another[] = new int[j-i];
int n = 0;
for (int k = 0; k < array.length; k++){
while (i <= j){
if (k == i){
another[n] = array[k][0];
}
i++;
}
}
}
答案 0 :(得分:1)
首先,您不会返回或打印任何内容。其次,要从输入中复制多行,返回的数组应该是2d(而不是1d)。创建new int[][]
行j - i
。然后从array
复制到新阵列。像,
public static int[][] getRows(int i, int j, int[][] array) {
int[][] ret = new int[j - i][];
for (int k = i; k < j; k++) {
ret[k - i] = new int[array[k].length];
for (int m = 0; m < ret[k - i].length; m++) {
ret[k - i][m] = array[k][m];
}
}
return ret;
}
然后你可以用
之类的东西来调用它(并打印结果)public static void main(String[] args) {
int[][] t = { { 0, 1 }, { 2, 3 }, { 4, 5 } };
System.out.println(Arrays.deepToString(getRows(1, 3, t)));
}
哪个输出
[[2, 3], [4, 5]]
答案 1 :(得分:1)
@Elliot我是这样做的:)
public static int[][] getRows(int i, int j, int[][] array){
int[][] another = new int[j-i+1][];
while (i <=j){
for (int k = 0; k < another.length; k++){
another[k]=array[i];
i++;
}
}
return another;
}