Java - чтение текста в 2D массив - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно иметь возможность читать текстовый файл, который затем помещается в 2D-массив. Все вопросы, которые я здесь просматривал, используют ArrayLists, что нам запрещено. Мой текстовый файл как показано.

Bananas, 5, 5
Apples, 5, 5
Steak, 5, 10

Первым значением является имя, второе количество и третья цена. Я хотел бы поместить их в массив inventory[30][3] из 30 предметов с тремя упомянутыми мною чертами. Я извиняюсь, если это слишком основательно c, я много пробовал Google и YouTube и не мог найти простой ответ.

1 Ответ

0 голосов
/ 22 апреля 2020

Это код, который я использовал для получения массива, как вы хотите:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileIntoArray {
    public static void main(String[] args) {
        String[][] inventory = new String[30][3];
        try {
            File myObj = new File("filename.txt");
            Scanner myReader = new Scanner(myObj);
            int i = 0;
            while (myReader.hasNextLine()) {
                String[] traits = myReader.nextLine().split(",");
                for(int j = 0; j < traits.length; j++){
                    inventory[i][j] = traits[j];
                }
                i++;
            }
            // do stuff here with inventory
            myReader.close();
        } catch (FileNotFoundException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

Несколько вещей, на которые стоит обратить внимание.

Первый - это разбиение, разбивающее каждую строку текстовый файл на запятой. В зависимости от форматирования файла вам может потребоваться добавить пробел, чтобы на пробеле не было конечных пробелов: split(", ")

Следующее, что я перебрал в массиве строк traits, который мог бы будьте излишними, так как когда-либо будет только 3 записи, но это означает, что массив может быть расширен до большего количества черт при необходимости в будущем.

Наконец, последняя вещь - это переменная i. Это необходимо для отслеживания итерации l oop.

...