我正在尝试创建一个程序,该程序在 10X10 大小的 2D 阵列板上生成滑槽和梯子。为了生成这些滑槽和梯子,我必须创建一个名为的方法,该方法readBoard
基本上读取书面文件 (myBoard.csv) 并将书面信息转换为位置,并将滑槽和梯子相应地放置到 2D 阵列板上。
该程序可以编译,但是当我运行它时,会出现以下错误:
java.lang.ArrayIndexOutOfBoundsException: 1
at ChutesAndLadders.readBoard(ChutesAndLadders.java:41)
at TestFile.main(TestFile.java:13)
我的印象是,也许我的书面文件有额外的空间,我没有看到这就是为什么它告诉我我超出了界限。但是,我检查了写入的文件,它看起来很好。如果你能对这个问题提供一些见解,那就太好了。提前致谢!
这是我的getBoard
方法:
public void readBoard(String filename)throws Exception
{
Scanner s=new Scanner(new File(filename));
s.nextInt();
while (s.hasNext())
{
String line=s.nextLine();
String[]singleSplit=line.split(",");
String cellType=singleSplit[0];
int row=Integer.parseInt(singleSplit[1]);
int col=Integer.parseInt(singleSplit[2]);
if (cellType.equals("Chute"))
board[row][col]=new Chute();
else
board[row][col]=new Ladder();
}
}
这是我的书面文件(类型、行、列):
29
溜槽,1,0
溜槽,2,0
溜槽,3,0
溜槽,4,0
溜槽,5,0
溜槽,6,0
溜槽,7,0
溜槽,8,0
溜槽,9,0
溜槽,0,1
溜槽,0,2
溜槽,0,3
溜槽,9,1
溜槽,9,2
溜槽,9,3
梯子,0,5
梯子,1,5
梯子,2,5
梯子,3,5
梯子,4,5
梯子,5,5
梯子,6,5
梯子,7,5
梯子,8,5
梯子,9,5
梯子,9,6
梯子,9,7
梯子,9,8
梯子,9,9