desislava_topuzakova

10. SoftUni Course Planning

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