Java чтение файла в массив 2D - PullRequest
0 голосов
/ 04 февраля 2020

все. Я думал об этом в течение 3 часов, просто не могу понять. У меня есть программа, которая требует чтения файла в 2D-массив. Файл выглядит так:

...##..#####........
########....####..##
.........##.........
#.#.#.#.#.#.#.#.#.#.

По сути, речь идет о системе резервирования мест.

"." Означает открытые места. «#» означает зарезервированные места. Строка и столбец мне неизвестны, зависит от файла. Но каждый ряд имеет одинаковое количество мест.

import java.util.Scanner;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Arrays;


public class Main 
{   


public static void main(String[] args)  throws Exception 
{


    int rows = 0, cols = 0;
    char[][] auditorium = new char[rows][cols];

    Scanner sc = new Scanner(new BufferedReader(new FileReader("A1.txt")));

 }

Я новичок в java, на самом деле не имею никаких мыслей по поводу этой программы. Пожалуйста, прочитайте файл и поместите данные в массив 2D.

1 Ответ

0 голосов
/ 04 февраля 2020

Пожалуйста, проверьте этот код. Это может помочь вам:

public static void main(String[] args) throws Exception {
    List<String> stringList = new ArrayList<>();
    Scanner sc = new Scanner(new BufferedReader(new FileReader("A1.txt")));
    while (sc.hasNext()) {
        stringList.add(sc.nextLine());
    }
    int rows = stringList.size();
    int cols = 0;
    if (rows > 0) {
        cols = stringList.get(0).length();
    }
    char[][] auditorium = new char[rows][cols];
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            auditorium[i][j] = stringList.get(i).charAt(j);
        }
    }
}
...