您将如何在二维数组中分别浏览每一行和每一列

时间:2014-02-05 00:45:54

标签: java

我很好奇如何做到这一点。我正在编写一个小程序来更好地理解二维数组。我想知道如何使用for循环分别遍历每一行和每一列。

假设我有一个由不同字母组成的2D数组。我想浏览每一行和每一列,检查是否有某个字母。然后我希望它能够打印每行中出现的这封信的出现次数。

第一个索引是行,第二个索引是列。

3 个答案:

答案 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]);
        }
    }
}