int loc = 0 ;
int place = loc*3+1;
ArrayList<String> map = new ArrayList<String>(
Arrays.asList("|"," ","|\n", "|"," ","|\n", "|"," ","|\n",
"|"," ","|\n", " ‾\n"));
上面是我的数组列表和一些变量,用于跟踪数组列表内空格的位置。 Arraylist的目的是在打印时创建一个小地图。该地图如下所示。可以在1、4、7和10处的每三个索引值中找到可以在其中找到字符的空格。
| |
| |
| |
| |
‾
我遇到问题的方法如下。其目的是检查字符“上方”是否存在空格。如果有空格,它将返回单词North;如果没有空格,则应返回否。
public static String moveN( ArrayList<String> map, int place){
String movenorth = "";
String positionvalue = map.get(place-3);
if (place-3 <= 0){
movenorth = "No";
} else {
if (positionvalue.equals(" "))
movenorth = "North";
}
return(movenorth);
}
返回而不是不返回
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -2
如果我的if语句显然无法按我希望的那样工作,我将如何解决这个问题。
答案 0 :(得分:0)
您的if工作正常,但由于以下原因而引发异常:
String positionvalue = map.get(place-3);
在获取位置值之前,请确保检查您是否未访问界外索引。
答案 1 :(得分:0)
从该消息中,它看起来像place = 1,并且当您执行place-3时,它正在尝试执行Cannot stat '/home/dev/app/app-name/current/passenger_wsgi.py':
Permission denied (errno=13);
。您可能应该进行边界检查,使其在开始{{1 }}