Java 当我尝试返回多维数组中某个项的索引值时,不会得到数字。我有一套奇怪的角色。为什么?

Java 当我尝试返回多维数组中某个项的索引值时,不会得到数字。我有一套奇怪的角色。为什么?,java,multidimensional-array,indexing,return,Java,Multidimensional Array,Indexing,Return,下面的代码应该返回多维数组中某个项的索引值。但是,当我运行它时,它会返回以下内容: Found at: [I@7ea987ac public static String findWord(char[][]board, String word) { for (int row = 0; row < board.length; row++) { for (int col = 0; col < board[row].lengt

下面的代码应该返回多维数组中某个项的索引值。但是,当我运行它时,它会返回以下内容:

Found at: [I@7ea987ac

    public static String findWord(char[][]board, String word) {
            for (int row = 0; row < board.length; row++) {
                for (int col = 0; col < board[row].length; col++) {
                    if (board[row][col] == word.charAt(0)) {
                        return "Found at: " + new int[] {row,col};
                    }
                }
            }
            return "Not found.";
        }
位于:[I@7ea987ac
公共静态字符串findWord(字符[][]板,字符串字){
对于(int row=0;row

代码有什么问题,它没有返回正确的索引值?

您将以字符串形式返回数组,因此您将获得数组返回的默认值
toString()
[I@7ea987ac
,其中
[I
表示int数组,数字是数组的哈希代码

解决方案:不要将数组作为字符串返回,而是提取所需的字符串数据并返回

相反,返回如下内容:

return String.format("Found at [%d, %d]", row, col);

您将从数组中获得默认的
toString()
,您可以对此进行更改

return "Found at: " + new int[] {row,col};
与类似的东西一起使用

return "Found at: " + Arrays.toString(new int[] {row,col});

您正在打印数组对象,默认情况下,该对象返回对象mem分配,如果要打印该对象,则应将其返回到:“+row+”,“+col};尝试使用
java/util/Arrays.toString(int[])
打印它。也就是说,
return”位于:“+java/util/Arrays.toString(new int[]{row,col});