有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何打印2d数组时间表?

package javaapplication18;

public class JavaApplication18 {


   public static void main(String[] args) {
       String weekdays[][] = new String[7][0];
       weekdays[1][0] = "mon";
       weekdays[2][0] = "tue";
       weekdays[3][0] = "wed";
       weekdays[4][0] = "thur";
       weekdays[5][0] = "fri";
       weekdays[6][0] = "sat";
       String hours[][] = new String[0][5];
       hours[0][1] = "9:30";
       hours[0][2] = "10:30";
       hours[0][3] = "11:30";
       hours[0][4] = "12:30";
       System.out.println(weekdays[7][0]);
   }

}

当我编译它时,它在线程“main”java中给出了异常的错误提示。lang.ArrayIndexOutOfBoundsException:0 在javaapplication18。JavaApplication18。main(JavaApplication18.java:8) 我如何纠正这一点


共 (4) 个答案

  1. # 1 楼答案

    试试这个

    public static void main(String[] args) {
        //way 1
        String weekdays[][] = new String[7][];
        weekdays[0] = new String[] { "sun" };
        weekdays[1] = new String[] { "mon" };
        weekdays[2] = new String[] { "tue" };
        weekdays[3] = new String[] { "wed" };
        weekdays[4] = new String[] { "thur" };
        weekdays[5] = new String[] { "fri" };
        weekdays[6] = new String[] { "sat" };
    
        //way 2
        String hours[][] = new String[1][5];
        hours[0][0] = "8:30";
        hours[0][1] = "9:30";
        hours[0][2] = "10:30";
        hours[0][3] = "11:30";
        hours[0][4] = "12:30";
        System.out.println(weekdays[1][0]);
    }
    
  2. # 2 楼答案

    尝试更改数组大小,并将工作日数组中的7改为6

    public static void main(String[] args) {
    
            String weekdays[][] = new String[7][1];
            weekdays[0][0] = "sun";
            weekdays[1][0] = "mon";
            weekdays[2][0] = "tue";
            weekdays[3][0] = "wed";
            weekdays[4][0] = "thur";
            weekdays[5][0] = "fri";
            weekdays[6][0] = "sat";
    
            String hours[][] = new String[1][5];
            hours[0][1] = "9:30";
            hours[0][2] = "10:30";
            hours[0][3] = "11:30";
            hours[0][4] = "12:30";
            System.out.println(weekdays[6][0]);
        }
    

    //在评论后回答

    public static void main(String[] args) {
    
            String weekdays[][] = new String[7][7];
            weekdays[0][0] = "sun";
    
            weekdays[0][1] = "9:30";
            weekdays[0][2] = "10:30";
            weekdays[0][3] = "11:30";
    
            weekdays[1][0] = "mon";
    
            weekdays[1][1] = "9:30";
            weekdays[1][2] = "10:30";
            weekdays[1][3] = "11:30";
    
            weekdays[2][0] = "tue";
    
            weekdays[2][1] = "9:30";
            weekdays[2][2] = "10:30";
            weekdays[2][3] = "11:30";
    
            weekdays[3][0] = "wed";
    
            weekdays[3][1] = "9:30";
            weekdays[3][2] = "10:30";
            weekdays[3][3] = "11:30";
    
            weekdays[4][0] = "thur";
    
            weekdays[4][1] = "9:30";
            weekdays[4][2] = "10:30";
            weekdays[4][3] = "11:30";
    
            weekdays[5][0] = "fri";
    
            weekdays[5][1] = "9:30";
            weekdays[5][2] = "10:30";
            weekdays[5][3] = "11:30";
    
            weekdays[6][0] = "sat";
    
            weekdays[6][1] = "9:30";
            weekdays[6][2] = "10:30";
            weekdays[6][3] = "11:30";
    
            String hours[][] = new String[1][5];
            hours[0][1] = "9:30";
            hours[0][2] = "10:30";
            hours[0][3] = "11:30";
            hours[0][4] = "12:30";
    
            int j = 0;
            int i = 0;
            while (i < 7) {
                System.out.print("\t" + weekdays[i][j]);
                j++;
                if (j > 3) {
                    j = 0;
                    i++;
                    System.out.println();
                }
            }
        }
    
  3. # 3 楼答案

    更改数组声明中的数组大小。大小0应为1

    声明数组时,索引应至少为一个。因为它告诉我们应该在内存中分配多少空间。但是,如果使用数组后者,则索引是基于0的。如果声明a[7][1],最后一个数组元素将是a[6][0]

       public static void main(String[] args) {
    
           String weekdays[][] = new String[7][1];
           weekdays[0][0] = "sun";
           weekdays[1][0] = "mon";
           weekdays[2][0] = "tue";
           weekdays[3][0] = "wed";
           weekdays[4][0] = "thur";
           weekdays[5][0] = "fri";
           weekdays[6][0] = "sat";
    
           String hours[][] = new String[1][5];
           hours[0][1] = "9:30";
           hours[0][2] = "10:30";
           hours[0][3] = "11:30";
           hours[0][4] = "12:30";
           System.out.println(weekdays[6][0]); // sat
       }
    
  4. # 4 楼答案

    首先,您得到的错误是运行时错误,不应该在编译期间发生。 其次,为了打印一个数组,您需要对其进行迭代,2d数组也是如此

    您的代码应该如下所示:

    for ( int i = 0; i < weekdays.length ; i++ ){
            for ( int j = 0;  j < weekdays[j].length ; j++ ){
                System.out.println(weekdays[i][j]);
            }
        }