Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
2d字符数组java的“非语句”问题_Java_Arrays_2d - Fatal编程技术网

2d字符数组java的“非语句”问题

2d字符数组java的“非语句”问题,java,arrays,2d,Java,Arrays,2d,我有一个地图的2d字符数组,数组中的每个位置都指向地图中该位置的字符。我也有用户的当前位置。我已经检查了我的地图是否包含值,位置是否正确,并且我没有试图到达地图中任何超出边界的地方。出于某种原因,我的n=map[…],e=。。。etc不工作,返回错误“nota statement”和“not a statement”;“需要”等。我不明白为什么这不起作用。有什么想法吗 public String look(int[] position, char[][] mapArray) {

我有一个地图的2d字符数组,数组中的每个位置都指向地图中该位置的字符。我也有用户的当前位置。我已经检查了我的地图是否包含值,位置是否正确,并且我没有试图到达地图中任何超出边界的地方。出于某种原因,我的n=map[…],e=。。。etc不工作,返回错误“nota statement”和“not a statement”;“需要”等。我不明白为什么这不起作用。有什么想法吗

 public String look(int[] position, char[][] mapArray)
    {
    char[][] map = mapArray;
    char n;
    char e;
    char s;
    char w;
    int across;
    int down;
    across = position[0];
    down = position[1];
    System.out.println(across);
    System.out.println(down);
    n = map[(down + 1),across];
    e = map[down, (across + 1)];
    s = map[(down - 1), across];
    w = map[down, (across - 1)];
    //System.out.println("Across" + across);
    //System.out.println("Down" + down);
    //System.out.println("N" + n);
    //System.out.println("E" + e);
    //System.out.println("S" + s);
    //System.out.println("W" + w);
    return "hello";
    }

要访问二维阵列,您需要:

n = map[(down + 1)][across]
而不是

n = map[(down + 1),across]
[其他2d阵列访问也是如此]


其思想是:map[down+1]为您提供一个char[],然后您可以像任何数组一样访问此char[],因此您可以使用两个[]来访问所需的二维数组:

n = map[(down + 1)][across]
而不是

n = map[(down + 1),across]
[其他2d阵列访问也是如此]

这个想法是:map[down+1]给你一个char[],然后你像任何数组一样访问这个char[],因此你使用两个[]

它应该是:

 n = map[(down + 1)][across];
n = map[(down + 1)][across];
应该是:

 n = map[(down + 1)][across];
n = map[(down + 1)][across];
这应该是:

 n = map[(down + 1)][across];
n = map[(down + 1)][across];
这应该是:

 n = map[(down + 1)][across];
n = map[(down + 1)][across];

谢谢,多愚蠢的问题啊!我会尽快挑选你作为最佳答案。谢谢,这是一个多么愚蠢的问题!我会尽快挑选你作为最佳答案。