gpt4 book ai didi

java - 如何从输入文件获取二维数组看起来像字段

转载 作者:行者123 更新时间:2023-12-02 09:26:10 25 4
gpt4 key购买 nike

我想从输入读取一个文件,该文件如下所示:

..........
..........
..........
..........

我想要这个输入文件,读取并放入二维数组中。

我已经尝试过这个:

  public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("Give the input filename");
String fileName=scanner.nextLine();
readFieldFile(fileName);

scanner.close();
}
static Cell[][] readFieldFile(String fileName) throws IOException {
BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
char[][] field=new char[4][10];
String currentLine;
for(int i=0;i<4;i++) {
while((currentLine=reader.readLine())!=null) {
field[i]=currentLine.toCharArray();
}
}
return field;
}

它给出了一个错误,但我认为这是因为我使用了Cell[][]。我需要它返回这个 Cell[][],这样我就可以在其他函数中使用它。有人知道如何获得正确的返回吗?该字段是固定的:行 4 列,列 10。

最佳答案

您计算field,一个char[][],但声明您返回一个Cell[][]。创建适当大小的 Cell[][],并根据需要设置值。然后,您的错误就会消失:

static Cell[][] readFieldFile(String fileName) throws IOException
{
... //whatever previous logic
// don't return, though. Instead, do the following:
Cell[][] cells = new Cell[4][10];
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 10; j++)
{
cells[i][j] = new Cell(field[i][j]); // or however you initialize Cell
}
}
return cells;
}

或者,您可以通过更改方法声明将返回类型转换为 char[][]:

static char[][] readFieldFile(String fileName) throws IOException
{
... // whatever was there already
}

附:请阅读this下次。标题很好,但问的是“有人能帮助我吗?”问题中的任何一点通常都不精确,足以让您重定向到此链接。

关于java - 如何从输入文件获取二维数组看起来像字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58327570/

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