多维数组的元素,Java
我有一个数组:多维数组的元素,Java,java,Java,我有一个数组: public String[][] bombBoard = new String[9][9]; 此数组中填充了值(*),但在整个数组中随机存在一些其他值(@) 在程序的后面部分,我想告诉用户(@)的位置,如果附近有: public void loadNumbers() { try { if (bombBoard[bombRow][bombCol] == "@") { System.out.println(
public String[][] bombBoard = new String[9][9];
此数组中填充了值(*),但在整个数组中随机存在一些其他值(@)
在程序的后面部分,我想告诉用户(@)的位置,如果附近有:
public void loadNumbers()
{
try
{
if (bombBoard[bombRow][bombCol] == "@")
{
System.out.println("You have landed on a bomb!");
//break
}
else if (bombBoard[bombRow+1][bombCol].equals("@"))
{
System.out.println("There is a bomb in the vicinity!" + bombBoard[bombRow+1][bombCol]);
}
else if (bombBoard[bombRow-1][bombCol] == "@")
{
System.out.println("There is a bomb in the vicinity!" + bombBoard[bombRow-1][bombCol]);
}
else if (bombBoard[bombRow][bombCol+1] == "@")
{
System.out.println("There is a bomb in the vicinity!" + bombBoard[bombRow][bombCol+1]);
}
MORE CODE...
}
}
它显示:“附近有炸弹!@”
我想把它打印出来“3,2点有炸弹”
也许很简单,但我在画空白。我想要元素索引,而不是从元素中提取内容(我猜)。请停下来 我假设您只想打印出
@
的坐标?如果是这样,您可以这样做:
System.out.println("There is a bomb at " + bombRow + ", " + bombCol + 1);
对其他条件使用相同的模式。另外,您希望使用.equals
而不是=
来比较字符串(后者只比较引用)。试试看
System.out.println("There is a bomb in the vicinity!" + (bombRow+1).toString() +"," +bombCol.toString());
将
String
值与String
的equals
方法进行比较,而不是与=
运算符进行比较。你在第二个条件下做得很正确。这只做了一点修改(我用的是(bombCol+1)而不是bombCol+1),因为没有parens它就不能做数学!谢谢。我把它们都改成了==而且似乎很有效。除了显而易见的区别,.equals与==有何不同?@RichardS我认为它之所以有效是因为字符串的插入.equals
将比较实际字符串的内容,而=
仅检查它们是否指向相同的内容。