java - Java中的另一个索引越界异常

标签 java indexoutofboundsexception

import java.util.Arrays;

/**
 * 
 */

/**
 * @author abogal6274
 *
 */
public class TicTacToe {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
TTTBoard();

    }
    public static void TTTBoard(){

        String[][] tttBoard = new String[3][3];
         for(int i=0; i<=3;i++){
             tttBoard[i][3] = "[ ]";
         }

         System.out.println(Arrays.deepToString(tttBoard));
    }

}



Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at TicTacToe.TTTBoard(TicTacToe.java:25)
    at TicTacToe.main(TicTacToe.java:18)

问题是它说这是一个错误。为什么?我试着做i<=3 , i<4和所有的东西,但我仍然收到错误。我真的需要这方面的帮助来完成我的 tic tac toe 应用程序。

编辑:已经解决了,但是: 它打印出这个:[[null, null, [ ]], [null, null, [ ]], [null, null, [ ]]]它应该打印,但它可以像井字游戏板一样垂直吗?

最佳答案

tttBoard[i-1][3]无论 i 都超出范围,由于 3。

如果您希望初始化整个二维数组,请使用嵌套循环:

    String[][] tttBoard = new String[3][3];
    for(int i=0; i<tttBoard.length;i++)
        for(int j=0; j<tttBoard[i].length;j++)
            tttBoard[i][j] = "[ ]";

要以 3 行打印电路板,请勿使用 System.out.println(Arrays.deepToString(tttBoard)); .

您可以使用:

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

关于java - Java中的另一个索引越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33871464/

相关文章:

java - 没有实体类的 JAXB XmlElement

java - Hangman 游戏中的 ArrayIndexOutOfBoundsException

java - 当我尝试添加更多列时发生异常

Java 对 double 、整数和转换基础知识的困惑

java - JasperReports在固定字符串数据输入(Java/Gradle内置)上打破了IndexOutOfBoundsException

java - 我的 ArrayList 究竟有什么问题?

go - 在 go 中使用 var 和不使用 var 声明变量的区别

java - HashMap根据Size重新散列

java - NPE Con​​figureListener Tomcat 8 + JSF 2.3

java - 编译单元不在 Java 项目的构建路径上 - Maven