Проблема с методом семестра. Мне нужно ввести семестр (String), а затем сопоставить эту String с семестром в текстовом файле (также String), но он продолжает возвращать «No Class Taken». Все остальное в коде работает должным образом, я просто не могу найти правильный формат для этого. Я пробовал оба сканера и InputStream. Любая помощь будет принята с благодарностью.
Вот пример строки из текстового файла, все они имеют одинаковую базовую c настройку (всего 10 строк): USF, CGS, 1540,3, Введение в базы данных для ИТ, Summer2018, B +
и вот выход, если я введу «Summer2018» (у меня есть 4 строки с «Summer2018» в нем:
Введите семестр: Summer2018 Нет принятых классов Нет принятых классов Нет принятых классов Нет принятых классов Нет принятых классов Нет принятых классов
void semester () создает исключение {
try (BufferedReader br = new BufferedReader(new FileReader("transcript.txt"))){
String line;
int j = 0;
InputStreamReader r=new InputStreamReader(System.in);
BufferedReader bf = new BufferedReader(r);
System.out.println("Enter Semester: ");
String semester=bf.readLine();
if ((line = br.readLine()) != null)
numberCourses = Integer.parseInt(line);
else {
System.out.println("Incorrect file format");
return;
}
myTranscript = new Course[numberCourses];
while ((line = br.readLine()) != null) {
String[] info = line.split(",");
if (info[5].equals(semester) & info[6].contentEquals("S") | info[6].contentEquals("U")) {
myTranscript[j] = new PassFailCourse(info[0],info[1],info[2],
Integer.parseInt(info[3]),info[4],info[5],info[6]);}
else if (info[5].equals(semester) & info.length == 7)
myTranscript[j] = new GradedCourse(info[0],info[1],info[2],
Integer.parseInt(info[3]),info[4],info[5],info[6]);
else if (info[5].equals(semester) & info.length == 12) {
myTranscript[j] = new NonGradedCourse(info[0],info[1],info[2],
Integer.parseInt(info[3]),info[4],info[5],info[6],info[7],info[8],
info[9],info[10],info[11]);
}
else
System.out.println("No Classes Taken");
numberCourses = ++j;
}
}
catch (IOException e) {
e.printStackTrace();
}
}