Java 在二维数组中定位元素的坐标

Java 在二维数组中定位元素的坐标,java,arrays,Java,Arrays,我想我一定是弄丢了。 我试图定位二维数组中元素的坐标 我已经将代码简化为尽可能简单的代码,但仍然无法正确地完成它。 我对Java非常陌生 请告诉我为什么这个问题的答案总是42.0,不管我把“*”放在哪里 public static void main(String[] args) { locateStar(board); } static char[][] board = { { '.', '.', '.', '.' }, { '.', '.', '.', '.' },

我想我一定是弄丢了。 我试图定位二维数组中元素的坐标

我已经将代码简化为尽可能简单的代码,但仍然无法正确地完成它。 我对Java非常陌生

请告诉我为什么这个问题的答案总是42.0,不管我把“*”放在哪里

public static void main(String[] args) {
    locateStar(board);
}

static char[][] board = {
    { '.', '.', '.', '.' },
    { '.', '.', '.', '.' },
    { '.', '.', '.', '*' },
    { '.', '.', '.', '.' }
};

public static void locateStar(char[][] board) {
    double star = 0;
    for (int i = 0; i < board.length; i++) {
        for (int j = 0; j < board[0].length; j++) {
            if (board[i][j] == '*') {
                star = board[i][j];
            }
        }
    }
    System.out.println(star);
}
publicstaticvoidmain(字符串[]args){
locateStar(董事会);
}
静态字符[][]板={
{ '.', '.', '.', '.' },
{ '.', '.', '.', '.' },
{ '.', '.', '.', '*' },
{ '.', '.', '.', '.' }
};
公共静态无效locateStar(字符[][]板){
双星=0;
对于(int i=0;i
仔细看这一行:

star = board[i][j];
您正在将
char
分配给
double
。值
42
是星号
*
的ASCII值。如果要打印坐标(这是两个值,而不仅仅是一个值),请尝试以下操作:

public static void locateStar(char[][] board) {
    int x, y;
    for (int i=0; i < board.length; i++) {
        for (int j=0; j < board[0].length; j++) {
            if (board[i][j] == '*') {
                x = i;
                y = j;
            }
        }
    }
    System.out.println("Found a star at (" + x + ", " + y + ")");
}
public static void locateStar(char[][]板){
int x,y;
对于(int i=0;i
啊哈,这有点滑稽:)你找到了星星,然后把星星赋给一个双倍的值:

star = board[i][j];
也就是说,将
'*'
赋值给一个double,得到*字符的ASCII值,实际上是42

下面是一些代码,显示它已被找到:

for (int i = 0; i < board.length; i++) {
    for (int j = 0; j < board[0].length; j++) {
        if (board[i][j] == '*') {
            System.out.println("Found at " + i + " " + j);
            break;
        }
    }
}
for(int i=0;i
ASCII值42对应*符号。您的代码实际上是在检索值*,然后将其隐式转换为一个数字,该数字始终为42。无论位置如何,您都不会看到差异,因为您只查找“*”值,而不是它的位置或其他任何内容。

Ahh您比我快了几秒钟:p我不应该格式化代码!啊哈,不用担心,这是常有的事。