Как бы я поместил строки в мой массив объектов? - PullRequest
0 голосов
/ 26 сентября 2018

Вот что я должен сделать в моем проекте:

Вот что вы делаете: создайте класс с именем MyRecord (MyRecord.java) с переменными firstname, фамилия, email, idnumber, цвет и баланс.Используйте соответствующий тип данных для каждого поля.

Итак, я создал этот класс следующим образом:

public class MyRecord {

    String firstname, lastname, email, color;
    double idnumber, balance;
}

Следующая часть проекта - создать массив объектов MyRecord в моем основном методе, который я делаю какуказано:

 MyRecord recarray[] = new MyRecord[ARRAYSIZE];
 //ARRAYSIZE is 10

Следующим шагом является сканирование и чтение файла, который содержит 5 записей, таких как:

String filename = "data.txt";
File fileobject = new File(filename);
Scanner input = new Scanner(fileobject);

До этого момента программа прекрасно работала, и она читаетиз файла просто отлично, но теперь вот проблема: проект хочет, чтобы я добавил эти строковые записи в массив MyRecord.Я пытался сделать это так:

for(int i = 0; i <= 5; i++) {
    recarray[i] = input.next();      
}

Но выдает ошибку, говорящую «Строки не могут быть преобразованы в MyRecord массив объектов».Я вроде решил, что это вызовет эту ошибку, но я не уверен, как решить эту проблему.Итак, как мне преобразовать строки в объект и поместить их в массив?Или есть другой способ?

Кроме того, вот что это за записи, файл, из которого они читаются:

Mary, Jane, maryj@gmail.com, 7654321, blue, 27.54
John, Doe, jd@yahoo.com, 123456, green, 19.24
Curly, Howard, nyuknyuk@msn.com, 888765, purple, 0.0
Bart, Simpson, donthaveacow@hotmail.com, 457673, magenta, 432.23
Clark, Kent, superdude@dailyplanet.com, 976834, red, 11.10

Извините, я довольно новичок в Java.Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

GBlodgett ответ правильный.Я просто добавлю пример кода того, как вы можете собрать информацию из файла и поместить ее в массив.Например:

String[] array = new String[6];
for (int i = 0; i < numberOfLinesToRead; i++) {
    recarray[i] = new MyRecord(); // Make sure to initialize the object before accessing it
    array = scan.nextLine().replaceAll(" ", "").split(","); // The array object now contains each individual value of one line
    recarray[i].firstname = array[0];
    recarray[i].lastname = array[1];
    recarray[i].email = array[2];
    recarray[i].idnumber = Double.parseDouble(array[3]);
    recarray[i].color = array[4];
    recarray[i].balance = Double.parseDouble(array[5]);
}

Предполагается, что каждое значение данных для каждой строки читается из файла в том же порядке (firstname, lastname, email и т. Д.).

0 голосов
/ 26 сентября 2018

Ошибка в том, что вы пытаетесь разрешить input.next(); (A String) в recarray[i], который является MyRecord объектом.Вам необходимо получить доступ к отдельным полям.Так что-то вроде:

recarray[i].firstname = input.next();

А потом, когда вы доберетесь до double, вы можете сделать что-то вроде:

recarray[i].idnumber = Double.parseDouble(input.next());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...