我很好奇如何做到这一点。我正在编写一个小程序来更好地理解二维数组。我想知道如何使用for循环分别遍历每一行和每一列。
假设我有一个由不同字母组成的2D数组。我想浏览每一行和每一列,检查是否有某个字母。然后我希望它能够打印每行中出现的这封信的出现次数。
第一个索引是行,第二个索引是列。
答案 0 :(得分:0)
我不知道第一个或第二个索引是否被视为行或列,但这是一个非常标准的嵌套循环,用于迭代2d数组的每个元素。
for(int column = 0; column < array.length(); ++column) {
for(int row = 0; row < array[column].length(); ++row) {
// do stuff to array[column][row]
}
}
鉴于您的更新,让我们在名为'N'
的二维字符数组中查找字母myLetters
。
int counter = 0;
for(int i = 0; i < myLetters.length(); ++i) {
for(int j = 0; j < myLetters[i].length(); ++j) {
if('N' == myLetters[i][j]) {
++counter;
}
}
}
System.out.println("N occurs " + counter + " times.");
答案 1 :(得分:0)
如果您有2D数组,如果要访问每个单元格,则必须使用嵌套for循环。
例如:
for(int i = 0; i < length1; i++)
for(int j = 0; j<length2; j++){
// do something
to format column first do array[i][j] = //do something
to format row first do array[j][i] = // do something
}
"I tried using a for loop however i dont have a good understanding of for loops and i was wondering how not just go through array in its entirety but small bits like rows and columns"
for循环是一个java控制流语句。它允许你初始化一个变量(i和j)它给你一个条件(i
int i = 0
while (i < length1){
//do something
i++
}
如果几乎总是需要使用数组for循环。
答案 2 :(得分:0)
假设something[][]
是something[]
something
- 行(something[i]
为我们提供了一行,而不是一列 - 如果它是圆的话,只是改变例子):
public static void loopExample (String[][] someTwoDimArray) {
// Looping rows
for (var row = 0 ; row < someTwoDimArray.length ; row++) {
for (var col = 0 ; col < someTwoDimArray[0].length ; col++) {
System.out.println(someTwoDimArray[row][col]);
}
}
// looping columns
for (var col = 0 ; col < someTwoDimArray[0].length ; col++) {
for (var row = 0 ; row < someTwoDimArray.length ; row++) {
System.out.println(someTwoDimArray[row][col]);
}
}
}