显示二维数组的信息

时间:2014-10-05 01:40:49

标签: java arrays 2d

我试图显示我的二维数组中的名字。

public class last{

static void afficherMINU(String[][]nomPre){
    for(int i=0;i<nomPre.length;i++){
        for(int j=0;j<nomPre.length;j++){
            System.out.printf(nomPre[i][j]+"\n");
        }
    }
}

public static void main(String []args){
    String[]codePerm={"VILC15539307","NDIJ19129406","LANM29089409","JEAJ03108909","TOUS17529409","TRED01039200","AUCM28579305"};
    String[][]nomPre={{"VILLENEUVE-ASSE","CINDY"},{"NDIAYE YEND","JEAN-LOUIS RUDY"},{"LANDRY-VIGNEAULT GARCIA","MARCEL"},{"JEAN-BAPTISTE","JOSEPH-RAYMOND MARC"},{"TOUCHETTE","SOPHIE ANNE-MARIE"},
    {"TREMBLAY","DENIS MARC-ANDRE PIERRE"},{"AUCLAIR-JULIEN","MARIE-ISABELLE"}};

    afficherMINU(nomPre);

    }
}

双数组中来自"String[][]nomPre"的第一个信息是姓后跟的姓氏。例如,当我显示数组时,它应该看起来像

VILLENEUVE-ASSE, CINDY
NDIAYE YEND, JEAN-LOUIS RUDY 

等等。但是我的代码一直在打印:

VILLENEUVE-ASSE
CINDY
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at last.afficherMINU(last.java:6)
    at last.main(last.java:16)

2 个答案:

答案 0 :(得分:1)

您的内部循环具有错误的终止界限。 nomPre.length的值为7(如果我计算正确),但内部循环需要在nomPre[i]的长度后停止,因为{{1}的索引是{{1} }}。请改用:

j

更好的是,捕获外部循环中的for(int j=0;j<nomPre[i].length;j++){ // NOT nomPre.length System.out.printf(nomPre[i][j]+"\n"); } th 行:

i

答案 1 :(得分:0)

afficherMINU

for(int j=0;j<nomPre.length;j++) {

应该是

for(int j=0;j<nomPre[i].length;j++) {

或者使用,Arrays.deepToString(Object[])喜欢

System.out.println(Arrays.deepToString(nomPre));

或使用for-each循环,

for(String[] arr : nomPre){
  System.out.println(Arrays.toString(arr));
}