Java 显示二维阵列中的信息

Java 显示二维阵列中的信息,java,arrays,2d,Java,Arrays,2d,我正在尝试显示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 v

我正在尝试显示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);

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

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

您的内部循环具有错误的终止边界。
nomPre.length
的值是7(如果我正确计数),但是内部循环需要在
nomPre[I]
的长度之后停止,因为这是由
j
索引的。改用这个:

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

afficherMINU

for(int j=0;j<nomPre.length;j++) {
或者使用循环


现在印得很好。但是要打印2d数组中的第一个元素,以便将姓氏和名字放在同一行,我必须将[i]和[j]?@user3268216弄乱-您可以使用
print()
而不是
println()
,然后在内环之后的外环中添加
println()
for(int i=0;i<nomPre.length;i++){
    String[] row = nomPre[i];
    for(int j=0;j<row.length;j++){
        System.out.printf(row[j]+"\n");
    }
}
for(int j=0;j<nomPre.length;j++) {
for(int j=0;j<nomPre[i].length;j++) {
System.out.println(Arrays.deepToString(nomPre));
for(String[] arr : nomPre){
  System.out.println(Arrays.toString(arr));
}