【问题标题】:looping over an array [duplicate]循环数组[重复]
【发布时间】:2016-04-14 04:04:54
【问题描述】:

您好,我以前使用此代码逐行循环遍历我的数组,但是我现在想逐列执行,最好的选择是有两个 for 循环, i 和 j 然后追加 [j] [i]?

StringBuffer decryptedText = new StringBuffer();
         for(char [] i : array){
         for (int j = 0; j < i.length; j++) {
         if (i[j] !=0){
             decryptedText.append(i[j]);
         }
         }

        }
         decryptedText.toString();
            System.out.println("\nDecrypted Text:\n" + decryptedText );

【问题讨论】:

  • 您应该更喜欢StringBuilder 而不是StringBuffer,而for-each 循环不会有帮助。此外,在迭代行之前,您无法获取列数。
  • 若要接受答案,请单击问题开头旁边的空心标记。

标签: java arrays for-loop append stringbuffer


【解决方案1】:

这仅在您的阵列不破旧时才有效

StringBuffer text = new StringBuffer();
int rowLen = array.length;
int colLen = array[0].length;
for(int a=0; a<colLen; a++)
    for(int b=0; b<rowLen; b++)
        if(array[b][a]!=0)
            text.append(array[b][a]);
System.out.println(text.toString());

【讨论】:

  • 谢谢,新手,慢慢学习
【解决方案2】:

如 cmets for-each 中所述,当您想要明智地访问多维数组列时,它不会帮助您。简单的for 循环即可完成任务。

这里是一个示例代码sn -p

void iterateColumnWise() {
    char data[][] = new char[SIZE][];
    for(int i=0; i<SIZE; i++) {
        for(int j=0; j<data[i].length; j++) {
            System.out.println(data[j][i]);
        }
    }
}

或者你可以访问多维数组的单列数据

void iterateColumnWise(int column) {
    char data[][] = new char[SIZE][];
    for(int i=0; i<SIZE; i++) {
        System.out.println(data[i][column]);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多