[英]How to print only 2X2 array from 4X4 array
我是 Java 编程的新手。 我正在使用 arrays,我只想从 4X4 阵列打印 2X2 阵列。
例子:
int a[][]= {{2,4,6,8},
{1,3,5,7},
{1,2,3,4},
{0,9,8,7}};
使用下面的代码,我可以打印数组中的所有数字。
for(int i[]:a) {
for(int j:i) {
System.out.println(j + "");
}
}
但是,我只想打印3,4,8,7
(右下角 2X2 数组)。 我该怎么做?
这可以通过使用正常的 for 循环来完成。 您正在使用的基于集合的 for-each 循环将始终遍历集合中的所有对象。 如果您只想遍历数组的某个范围,请使用普通的 for 循环并遍历您关注的索引。
for (int i = 2; i < 4; i++) {
for (int j = 2; j < 4; j++) {
System.out.println("" + a[i][j]);
}
}
让我们有一个 x 和 y 偏移,并打印一个定义的宽度和高度:
int offset_x = 2;
int offset_y = 2;
int width = 2;
int height = 2;
for (int y = offset_y; y >= 0 && y < offset_y + height && y < a.length; y++) {
for (int x = offset_x; x >= 0 && x < offset_x + width && x < a[y].length; x++) {
System.out.print(a[y][x]+",");
}
System.out.println();
}
在此设置中,它将从 2,2 开始打印 2x2,但您可以调整值以在 0,1 处打印 3x3。 它受到保护,不会超出数组的末尾,如果使用负索引,它不会打印
你可以形象化
2 4 6 8
1 3 5 7
1 2 3 4
0 9 8 7
这组数字为
[0,0] [0,1] [0,2] [0,3]
[1,0] [1,1] [1,2] [1,3]
[2,0] [2,1] [2,2] [2,3]
[3,0] [3,1] [3,2] [3,3]
括号中的第一个数字代表行,而第二个数字代表列。
了解到这一点,我们现在得到 position 或您要打印的数字的索引。
[2,2] [2,3]
[3,2] [3,3]
从你给定的一组数字中,我得到他们的行和列索引,然后分析一个更好的 for 循环解决方案来打印你的问题。
for (int row = 2; row < 4; row++) {
for (int col = 2; col < 4; col++) {
System.out.println(a[row][col]) ;
}
}
上面的解决方案与此没有什么不同:
System.out.println(a[2][2]);
System.out.println(a[2][3]);
System.out.println(a[3][2]);
System.out.println(a[3][3]);
为了打印一系列索引中的元素,您需要使用嵌套循环来浏览该范围内的索引。 执行以下操作:
public class Main {
public static void main(String[] args) {
int a[][] = {
{ 2, 4, 6, 8 },
{ 1, 3, 5, 7 },
{ 1, 2, 3, 4 },
{ 0, 9, 8, 7 } };
for (int i = a.length / 2; i < a.length; i++) {
for (int j = a[i].length / 2; j < a[i].length; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}
Output:
3 4
8 7
在这里,如果我们将二维数组视为表格,则您要查找的索引范围是从row#2 to 3
和从column#2 to 3
。
请注意,索引从数组中的0
开始。 此外,二维阵列是一维 arrays 的阵列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.