多维数组的元素,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
将比较实际字符串的内容,而
=
仅检查它们是否指向相同的内容。