簡體   English   中英

填充2D陣列迷宮時,陣列超出邊界異常

[英]Array out of Bounds Exception when populating 2D Array maze

我目前正准備參加“數據結構”課程,因此,事先已經開始閱讀某些主題。 我目前正在研究Stacks,但是遇到了問題。

我目前正在編寫一個使用堆棧自動解決迷宮的Maze App。 但是,當它進入迷宮本身時,我遇到了一個問題。

代碼如下:

import java.io.*;
import java.util.*;


public class Maze {
    private Square move;
    private char[][] maze;
    private SquareStack s;
    private String path = 
                 "C:\\Users\\Sigh\\workspace\\StegmannStackMaze\\maze.txt";
    private File file = new File(path);

public Maze(){
    s = new SquareStack();
    maze = new char[12][12];

}

public void getMaze() throws IOException{
    for (int row = 0; row < 12 ; ++row){ // Creates the left/right walls of the maze " |  | "
        maze[row][0] = '1';
        maze[row][11] = '1';
    }

    for ( int col = 0; col < 12 ; ++col){ // Creates upper and lower walls of the maze 
        maze[0][col] = '1';
        maze[11][col] = '1';
        }


Scanner filescan = new Scanner(path);
for( int row = 1; row <= 10 ; ++row){
    String line = filescan.nextLine();
    String delim = "[ ]+";
    String[] tokens = line.split(delim);

    for(int col = 1; col <= 10; ++col)
        maze[row][col] = tokens[col-1].charAt(0);
        }
filescan.close();
    }

}

這是.txt文件

0 0 1 E 1 0 0 1 1 1
0 1 1 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0
1 1 1 1 1 0 1 1 0 0
0 0 0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 1 0 1
0 1 0 1 0 0 0 1 0 0
1 1 0 1 1 1 0 1 1 0
0 1 0 0 0 0 0 1 1 0 
0 1 0 1 1 0 1 0 0 0

一旦col = 2,異常本身就會在此特定行上發生。

for(int col = 1; col <= 10; ++col)
    maze[row][col] = tokens[col-1].charAt(0);
    }

根據我的收集,此行將使用創建的每個標記並填充該列。 但是,我不確定為什么會例外。

感謝您的閱讀,希望我能從你們那里獲得一些見識。

變化

   Scanner filescan = new Scanner(path);

    Scanner filescan = new Scanner(file);

該路徑是一個String變量,而不是File實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM