gpt4 book ai didi

java - 用文本文件填充二维数组的方法

转载 作者:行者123 更新时间:2023-11-30 02:37:17 24 4
gpt4 key购买 nike

目前,我正在开发一个项目来创建生命游戏,但是我在编写我必须使用的第一个方法时遇到了困难。基本上,它必须读取文本文件并将其填充到二维数组中。现在我在 main 中收到一个错误,显示“线程“main”java.util.NoSuchElementException 中出现异常:未找到行”。任何帮助将不胜感激。顺便说一句,我应该提到,在文件中我知道行数,但想让它看起来像我不知道行数/列数。

import java.util.*;
import java.io.*;
public class Proj5testing {
public static void main (String[] args)throws IOException{
Scanner inFile = new Scanner(new File("life4.txt"));
System.out.print(readBoard("life4.txt"));

}

public static int[][] readBoard(String filename)throws IOException{
int rows=0;
Scanner inFile = new Scanner(new File(filename));
while (inFile.hasNextLine()) {
rows++;
inFile.nextLine();
}
int cols=Integer.parseInt(inFile.nextLine());
int[][] grid=new int[rows][cols];
for(int i=0;i<grid.length;i++){
for(int k=0;k<grid[rows].length;k++){
grid[i][k]=inFile.nextInt();

}
}
return grid
}
}

最佳答案

看看这段代码:

while (inFile.hasNextLine()) {
rows++;
inFile.nextLine();
}

这将循环直到没有更多的行。当循环退出时,hasNextLine() 将为 false(否则循环不会退出)。

然后,您立即调用:

int cols=Integer.parseInt(inFile.nextLine());

但是我们已经确定文件中没有下一行!所以当然会抛出错误。

相反,您需要处理循环中的每一行。我不知道你的文件的确切结构,但它会是这样的:

int[][] grid=new int[rows][cols];
int col = 0;
int row = 0;
while (inFile.hasNextInt()) {
grid[col][row] = inFile.nextInt();
col = col + 1;
if (col == cols) { //wrap to the next row
row = row + 1;
col = 0;
}
}

关于java - 用文本文件填充二维数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42723627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com