Как вы вводите строку, а затем найти точную строку в текстовом файле? - PullRequest
0 голосов
/ 04 апреля 2020

Проблема с методом семестра. Мне нужно ввести семестр (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();
} 

}

...