【问题标题】:Filling a 2D array with characters using data input from file - Java使用文件中的数据输入用字符填充二维数组 - Java
【发布时间】:2015-03-08 00:04:56
【问题描述】:

我正在尝试使用来自文件的数据输入来填充字符数组,在解析文件时我还尝试存储一些值,但一切都不起作用。

这是我的代码:

    File file = new File(filename); // filename is a user input
    Scanner fileScan = new Scanner(file);   

    // determine the board size
    ROWS = fileScan.nextInt();
    COLS = fileScan.nextInt();
    fileScan.nextLine();

    char[][] board = new char[ROWS][COLS];    

    for( int row = 0; row < board.length; row++){
        for (int col = 0; col < board[row].length ; col++){
            if (fileScan.hasNext()) {
                board[row][col]= fileScan.next().charAt(0);
                if(board[row][col] == START){
                    startingPoint = new Point(row, col);
                }                   
                if(board[row][col] == END){
                    endingPoint = new Point(row, col);
                }
            }
        }
    }
}

假设输入文件有

2 2
1 O O 
O O O 
O X 2 

这是我运行它时得到的(当我尝试打印数组时):

     O O 
     O X 

   java.lang.NullPointerException
    at java.awt.Point.<init>(Unknown Source)
    at CircuitBoard.getStartingPoint(CircuitBoard.java:139)
    at CircuitTracer.<init>(CircuitTracer.java:120)
    at CircuitTracer.main(CircuitTracer.java:36)

出了什么问题导致我无法获得起始点的值?

【问题讨论】:

  • 你在哪里实例化你的 fileScan 对象?
  • 请将异常的完整堆栈跟踪编辑到您的问题中。
  • 总是方阵/?贴上fileScan实例化的代码
  • 不确定这是否有效(没有跟踪所有代码)您的文件显示 2 行 2 列,而数据是 3 行 3 列。

标签: java arrays nullpointerexception


【解决方案1】:

好吧,我已经尝试运行代码: 考虑到我对数据大小的评论2x2 --&gt; 3x3

一切正常

文件应该是

3 3
1 O O 
O O O 
O X 2

阅读代码很好, 这是我使用的数组打印代码

for( int row = 0; row < board.length; row++){
    for (int col = 0; col < board[row].length ; col++){
        System.out.print(board[row][col] + " ");
    }
    System.out.println("");
}

这是输出:

1 O O 
O O O 
O X 2 

所以如果这是您需要的,只需将文件中的第一行更改为 3 3 并在此答案中使用打印代码

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多