Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查二维数组是否包含此字段或是否未定义_Java_Arrays_Matrix - Fatal编程技术网

Java 检查二维数组是否包含此字段或是否未定义

Java 检查二维数组是否包含此字段或是否未定义,java,arrays,matrix,Java,Arrays,Matrix,目前正在为我在大学的最后一个任务做一个小游戏。 我目前的问题是gameboard是一个2D单元格数组(自制类)。电路板是用我读入的txt.file创建的。现在用户可以输入多个命令。一个命令是创建一个新的游戏对象,并使用特定的x和y参数将其放置在棋盘上。 除此之外,是否有任何方法可以检查字段是否足够大以容纳他们输入的参数: try { gameField.getField()[Integer parseInt(splittedCom[1])][Integer

目前正在为我在大学的最后一个任务做一个小游戏。 我目前的问题是gameboard是一个
2D单元格数组
(自制类)。电路板是用我读入的txt.file创建的。现在用户可以输入多个命令。一个命令是创建一个新的游戏对象,并使用特定的x和y参数将其放置在棋盘上。 除此之外,是否有任何方法可以检查字段是否足够大以容纳他们输入的参数:

try {
        gameField.getField()[Integer
        parseInt(splittedCom[1])][Integer
        parseInt(splittedCom[2])].getStatus();
    } catch (ArrayIndexOutOfBoundsException e) { 
        Terminal.printLine("Error, this cell isn't in the gameField");
    }

我目前正在使用它来检查另一个命令。有没有一种方法可以毫无例外地使用它?

因为你的数组已经构建好了,你应该已经有了数组的尺寸,所以你可以使用
gameBoard.length
表示宽度,
gameBoard[0]。length
表示高度,并使用它们与用户提供的任何内容进行比较

编辑:根据您的问题:


如果可以访问
gameBoard
对象,则无需保存它们,因为这些信息可以通过
gameBoard
对象本身获得。或者,您必须以某种方式坚持它们。请注意,尽管存储这些值会浪费一些额外内存,但抛出异常也会有代价,应该避免(在本例中)。期望用户提供错误值的情况不属于例外情况的标准,因为这是您期望的情况。

检查输入,只要它适合您的游戏领域

boolean checker = false;
    while(!checker){
     if( /* check if the input is inside the gamefield */){
        checker = true;
        }
    }

我还考虑过保存这两个长度,以便使用它们,但使用您的方法,在创建字段时保存长度将是一种“浪费”?我希望我的代码尽可能清晰和优化。你认为通过
gameBoard.length
gameBoard[0]保存或访问它们更好吗?length
是更好的风格吗?@nhatniene:我已经更新了我的答案。您确实提出了一个正确的观点,但是您需要记住抛出异常的成本。谢谢您向我解释。帮了我很多忙@不客气。我对我的答案做了更多的修改,如果你再看一次可能会更好,以防万一。通常情况下,
Integer.parseInt()NumberFormatException
可以用
regex
检查,以避免使用异常,对吗?