Я изучаю Java и использую BlueJ, поэтому мой вопрос относится к части задания, которое меня попросили выполнить. Некоторые из них работают, но у меня проблемы с другими частями. Я включу все, что я сделал в классе до сих пор, но сначала вот требования:
- Предложите пользователю выбрать соответствующий файл // готово и работает
- Используйте объекты BufferedReader и Scanner для чтения файла построчно // готово и считайте, что работает!
По мере чтения каждой строки, содержащей имя и возраст бегуна, должен быть создан новый объект Runner, а его переменная экземпляра должна быть установлена следующим образом:
// Class Runner already created
// Class MathatonAdmin - current class.
- 3a) name - can be set directly using the value from the file.
// tested with System.out.println and all values (in display panel) are shown (*).
- 3б) возрастная группа - можно рассчитать по заданному возрасту: бегуны до 18 лет должны быть отнесены к категории юниоров, 55 лет и старше - к категории сеньоров, все остальные - по стандарту.
// tested with System.out.println and all values (in display panel) are shown (*).
- 3c) Экземпляр Runner должен быть добавлен в список, на который ссылается переменная экземпляра runners.
- 3a) name - can be set directly using the value from the file.
По сути, когда я запускаю предоставленный тестовый код:
MarathonAdmin ma = new MarathonAdmin();
ma.readInRunners();
Я должен видеть список бегунов, когда осматриваю маму; в настоящее время указано имя и возраст одного человека.
Так что мне нужна помощь с 3a - 3c. Как создать новый экземпляр Runner с указанными переменными, а затем добавить экземпляр Runner в список бегунов?
Я пробовал цикл for в цикле while, но, поскольку я угадываю цикл for, я не получаю требуемый список в переменной ma.
Я использую System.out.println для проверки того, что у меня есть хотя бы правильный файл.
Любая помощь или совет будут оценены.
Класс MarathonAdmin:
import java.util.*;
import java.io.*;
import ou.*;
/**
* MatharthonAdmin Class
*
* @author Stephen Berry
* @version 28/03/14
*/
public class MarathonAdmin
{
// instance variables
private String runners;
private String age;
/**
* Constructor for objects of class MarathonAdmin
*/
public void MarathonAdmin()
{
List<String> runners = new ArrayList<>();
}
public void readInRunners()
{
String pathName = OUFileChooser.getFilename();
File aFile = new File(pathName);
BufferedReader bufferedFileReader = null;
try
{
String currentLine;
Scanner lineScanner;
bufferedFileReader = new BufferedReader(new FileReader(aFile));
currentLine = bufferedFileReader.readLine();
while (currentLine != null)
{
lineScanner = new Scanner(currentLine);
lineScanner.useDelimiter(",");
runners = lineScanner.next();
age = lineScanner.next();
for (String aList: runners)
{
Runner runners = new Runner();
if (Integer.parseInt(age) < 18)
{
System.out.println(currentLine + " : Junior");
}
if (Integer.parseInt(age) > 55)
{
System.out.println(currentLine + " : Senior");
}
if (Integer.parseInt(age) > 18 && Integer.parseInt(age) < 55)
{
System.out.println(currentLine + " : Standard");
}
currentLine = bufferedFileReader.readLine();
}
}
}
catch (Exception anException)
{
System.out.println("Error: " + anException);
}
finally
{
try
{
bufferedFileReader.close();
}
catch (Exception anException)
{
System.out.println("Error: " + anException);
}
}
}
}