Didart

SoftUni Course Planning

Oct 17th, 2021
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.73 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.stream.Collectors;
  5.  
  6. public class SoftUniCoursePlanning {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         List<String> schedule = Arrays
  11.                 .stream(scanner.nextLine().split(", "))
  12.                 .collect(Collectors.toList());
  13.  
  14.         String input = scanner.nextLine();
  15.  
  16.         while(!input.equals("course start")) {
  17.             String [] tokens = input.split(":");
  18.            
  19.             String command = tokens[0];
  20.             String lessonTitle = tokens[1];
  21.            
  22.             switch(command) {
  23.                 case "Add":
  24.                     if(!schedule.contains(lessonTitle)) {
  25.                         schedule.add(lessonTitle);
  26.                     }
  27.                     break;
  28.                 case "Insert":
  29.                     int index = Integer.parseInt(tokens[2]);
  30.                     if(!schedule.contains(lessonTitle)) {
  31.                         schedule.add(index, lessonTitle);
  32.                     }
  33.                     break;
  34.                 case "Remove":
  35.                     if(schedule.contains(lessonTitle)) {
  36.                         schedule.remove(lessonTitle);
  37.                     }
  38.                     int indexLesson = schedule.indexOf(lessonTitle);
  39.                     if(schedule.get(indexLesson + 1).equals(lessonTitle+"-Exercise")) {
  40.                         schedule.remove(indexLesson + 1);
  41.                     }
  42.                     break;
  43.                 case "Swap":
  44.                     String lessonTitle2 = input.split(":")[2];
  45.                     if (schedule.contains(lessonTitle) && schedule.contains(lessonTitle2)) {
  46.                         int lesson1Index = schedule.indexOf(lessonTitle);
  47.                         int lesson2Index = schedule.indexOf(lessonTitle2);
  48.                         schedule.set(lesson1Index, lessonTitle2);
  49.                         schedule.set(lesson2Index, lessonTitle);
  50.  
  51.                         String exOne = lessonTitle + "-Exercise";
  52.                         String exTwo = lessonTitle2 + "-Exercise";
  53.                         if (schedule.contains(exOne)) {
  54.                             schedule.remove(schedule.indexOf(exOne));
  55.                             schedule.add(schedule.indexOf(lessonTitle + 1), exOne);
  56.                         }
  57.                         if (schedule.contains(exTwo)) {
  58.                             schedule.remove(schedule.indexOf(exTwo));
  59.                             schedule.add(schedule.indexOf(lessonTitle2) + 1, exTwo);
  60.                         }
  61.                     }
  62.                     break;
  63.                 case "Exercise":
  64.                     String exercise = lessonTitle + "-Exercise";
  65.                     int indexLessonTitle = schedule.indexOf(lessonTitle);
  66.                     if(schedule.contains(lessonTitle)) {
  67.                         if(indexLessonTitle == schedule.size() - 1) {
  68.                             schedule.add(indexLessonTitle + 1, exercise);
  69.                         } else  if(!schedule.get(indexLessonTitle + 1).equals(exercise)) {
  70.                             schedule.add(indexLessonTitle + 1, exercise);
  71.                         }
  72.                     } else {
  73.                         schedule.add(lessonTitle);
  74.                         schedule.add(exercise);
  75.                     }
  76.                     break;
  77.             }
  78.             input = scanner.nextLine();
  79.         }
  80.         printList(schedule);
  81.     }
  82.    
  83.     private static void printList(List<String> elements) {
  84.         int count = 1;
  85.         for (String element : elements) {
  86.             System.out.println(count + "." + element);
  87.             count++;
  88.         }
  89.     }
  90. }
  91.    
  92.  
Advertisement
Add Comment
Please, Sign In to add comment