gpt4 book ai didi

java - IndexOutofBoundsException:我无法解决它

转载 作者:行者123 更新时间:2023-12-01 16:57:20 24 4
gpt4 key购买 nike

我正在尝试执行一个基本的java任务,有船只,我必须使用导入文件给出它们的坐标,其中有代表船只运动的字符。 (N = +1 向北,S= +1 向南,E= +1 向东,W= +1 向西)

我想计算一个二维数组中的坐标,其中第一列代表垂直方向,第二列代表水平方向。

遇到以下问题:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at robotok.main(robotok.java:36)

我在源代码中标记了第36行。

ArrayList<String> control = new ArrayList<String>();
int coords[][] = new int[control.size()][2]; // index = robot sorszáma / [] Hosszúság / [] Szélesség

try {
Scanner scan = new Scanner(robotok);

while (scan.hasNextLine()) {
String line = scan.nextLine();
control.add(line);
}
} catch(Exception e){
}

for (int i = 0;i<control.size();i++) {
char[] directions = control.get(i).toCharArray();

for (int j =0;j<directions.length;j++) {
if (directions[j] == 'N') {
coords[i][0] --;
}else if (directions[j] == 'S'){
coords[i][0] ++;
}else if (directions[j] == 'W'){
coords[i][1] --;
}else if (directions[j] == 'E'){
coords[i][1] ++; /////THIS IS 36/////
}
}
}

for (int i =0;i<coords.length;i++) {
System.out.print("The "+i+". ship's coords: "+coords[i][0]+" ; "+coords[i][1]);
}

最佳答案

在将元素添加到 control 之前,您创建了 coords 数组,此时它的大小仍为 0。您需要延迟创建它,直到列表达到最终值尺寸。

关于java - IndexOutofBoundsException:我无法解决它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966081/

24 4 0
文章推荐: Java 8 Base64 编码(基本)不再添加新行。我怎样才能重新实现这个?
文章推荐: objective-c - 在 objective-c 中的DTCoreText中并排放置两个内联
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com