我在找Java的PHP等价物isset();如何检查数组元素是否存在?
int board[][]=new int[8][8];
...
if(isset(board[y][x]))
// Do something with board[y][x]
这样的函数是否存在于Java中?
编辑:对不起,我的意思是我想检查board[100][100]
是否存在与否。 if(board[100][100])
会导致数组超出界限的错误。
我在找Java的PHP等价物isset();如何检查数组元素是否存在?
int board[][]=new int[8][8];
...
if(isset(board[y][x]))
// Do something with board[y][x]
这样的函数是否存在于Java中?
编辑:对不起,我的意思是我想检查board[100][100]
是否存在与否。 if(board[100][100])
会导致数组超出界限的错误。
在Java中,int
阵列初始化为零值,所以你不能说,如果它已经没有设置,或者如果它被设置为0
如果值你想检查它是否设置,你应该使用Integer
的数组。如果该值未设置,则将为null
。
Integer[][] board = new Integer[8][8];
...
if (board[x][y] != null) { ... }
您可以创建一个方法,首先检查x,y是否位于数组的边界内,如果是,则该值不为null。我不相信有一个内置的数组方法,但是有一些类似.contains()的辅助函数用于ArrayLists。
我认为一个基本的空检查会起作用。
String[] myArray = {"Item1", "Item2"};
for(int x =0; x < myArray.length; x++){
if(myArray[0] != null)
{
...do something
}
}
它应该是if(myArray [x]!= null) – 2017-10-31 11:45:41
也许最好不要使用int,你可以使用整数,如果你真的把它作为一个int,但一般来讲一个复杂的对象将是更好的(如ChessPiece或东西)。这样你可以检查值== == null(null表示它没有被设置)。
if (board[x][y] != null) {
// it's not null, but that doesn't mean it's "set" either. You may want to do further checking to ensure the object or primitive data here is valid
}
Java没有equiv。因为知道某件事情是否真正设定不仅仅是将一个值填入某个位置。
确认...不要发现异常! – TofuBeer 2012-03-28 00:42:37
只是想知道...为什么?我都是为了减少异常处理和编码 – 2012-03-28 14:26:42
http://books.google.ca/books/about/Effective_Java.html?id=ka2VUBqHiWkC&redir_esc=y(第9章,第57项)。仅在特殊情况下使用例外。没有什么特别的事情要走出界限。此外,异常处理通常是代码中较慢的路径(未由虚拟机优化),因此它可能是不必要的性能问题。最后,它是一个RuntimeException,它表示程序员的错误 - 修复这个错误并不能解决它。为x/y在范围内添加if检查,它更快,更清晰,且不易出错。 – TofuBeer 2012-03-28 16:11:31
'isset()'的功能是什么? – 2012-03-28 00:29:56