Как получить 2d массив из inputfile выглядит как поле - PullRequest
0 голосов
/ 10 октября 2019

Я хочу прочитать файл из ввода, этот файл выглядит следующим образом:

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

Я хочу этот файл ввода, прочитать и поместить в двумерный массив.

Я уже пробовал это:

  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.

1 Ответ

1 голос
/ 10 октября 2019

Вы вычисляете 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
}

PS: Пожалуйста,прочитайте это в следующий раз. С заголовком все в порядке, но спрашиваю "Может ли кто-нибудь мне помочь?"в любой момент вопроса обычно достаточно неточно, чтобы вас перенаправили по этой ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...