Advertisement
LoraOrliGeo

P1_SoftUniCoursePlanning*_Lists_Ex

Apr 8th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.40 KB | None | 0 0
  1. package feb20_Lists_Exercises;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class R1_SoftUniCoursePlanning {
  9.     public static void main(String[] args) {
  10.         @SuppressWarnings("resource")
  11.  
  12.         Scanner sc = new Scanner(System.in);
  13.  
  14.         List<String> schedule = Arrays.stream(sc.nextLine().split(", ")).collect(Collectors.toList());
  15.  
  16.         String input = "";
  17.  
  18.         while (!"course start".equals(input = sc.nextLine())) {
  19.             String[] command = input.split(":");
  20.             String operation = command[0];
  21.             String lessonTitle = command[1];
  22.  
  23.             int indexOfLessonTitle = schedule.indexOf(lessonTitle);
  24.  
  25.             switch (operation) {
  26.             case "Add":
  27.                 if (indexOfLessonTitle == -1) {
  28.                     schedule.add(lessonTitle);
  29.                 }
  30.                 break;
  31.             case "Insert":
  32.                 int index = Integer.parseInt(command[2]);
  33.                 if (indexOfLessonTitle == -1) {
  34.                     if (index >= 0 && index < schedule.size()) {
  35.                         schedule.add(index, lessonTitle);
  36.                     }
  37.                 }
  38.                 break;
  39.             case "Remove":
  40.                 if (indexOfLessonTitle != -1) {
  41.                     schedule.remove(indexOfLessonTitle);
  42.                     if (indexOfLessonTitle < schedule.size()) {
  43.                         String next = schedule.get(indexOfLessonTitle);
  44.                         if (next.equals(lessonTitle + "-Exercise")) {
  45.                             schedule.remove(indexOfLessonTitle);
  46.                         }
  47.                     }
  48.                 }
  49.                 break;
  50.             case "Swap":
  51.                 String secondLessonTitle = command[2];
  52.                 int indexOfSecondLesson = schedule.indexOf(secondLessonTitle);
  53.  
  54.                 if (indexOfLessonTitle != -1 && indexOfSecondLesson != -1) {
  55.                    
  56.                     schedule.set(indexOfLessonTitle, secondLessonTitle);
  57.                     schedule.set(indexOfSecondLesson, lessonTitle);
  58.                    
  59.                     int maxIndex = Math.max(indexOfLessonTitle, indexOfSecondLesson);
  60.                     int minIndex = Math.min(indexOfLessonTitle, indexOfSecondLesson);
  61.                    
  62.                     if (maxIndex < schedule.size() - 1) {
  63.                         if (indexOfLessonTitle > indexOfSecondLesson) {
  64.                             String ex1 = schedule.get(indexOfLessonTitle + 1);
  65.                             String ex2 = schedule.get(indexOfSecondLesson + 1);
  66.                             if (ex1.equals(lessonTitle + "-Exercise")) {
  67.                                 if (ex2.equals(secondLessonTitle + "-Exercise")) {
  68.                                     schedule.set(indexOfLessonTitle + 1, ex2);
  69.                                     schedule.set(indexOfSecondLesson + 1, ex1);
  70.                                 } else {
  71.                                     schedule.add(indexOfSecondLesson + 1,  ex1);
  72.                                     schedule.remove(ex1);
  73.                                 }
  74.                             } else {
  75.                                 if (ex2.equals(secondLessonTitle + "-Exercise")) {
  76.                                     schedule.add(indexOfLessonTitle + 1,  ex2);
  77.                                     schedule.remove(schedule.indexOf(lessonTitle + 1));
  78.                                 }
  79.                             }
  80.                         }
  81.                     } else {
  82.                         if (schedule.get(maxIndex).equals(lessonTitle)) {
  83.                             String ex = schedule.get(minIndex + 1);
  84.                             if (ex.equals(lessonTitle + "-Exercise")) {
  85.                                 schedule.add(ex);
  86.                                 schedule.remove(minIndex + 1);
  87.                             }
  88.                         } else {
  89.                             String ex = schedule.get(minIndex + 1);
  90.                             if (ex.equals(secondLessonTitle + "-Exercise")) {
  91.                                 schedule.add(ex);
  92.                                 schedule.remove(minIndex + 1);
  93.                             }
  94.                         }
  95.                     }
  96.                 }
  97.                 break;
  98.             case "Exercise":
  99.                 int i = schedule.indexOf(lessonTitle);
  100.                 String ex = lessonTitle + "-Exercise";
  101.                 if (i != -1) {
  102.                     schedule.add(i + 1, ex);
  103.                 } else {
  104.                     schedule.add(lessonTitle);
  105.                     schedule.add(ex);
  106.                 }
  107.                 break;
  108.             }
  109.         }
  110.  
  111.         for (int i = 0; i < schedule.size(); i++) {
  112.             System.out.println(i + 1 + "." + schedule.get(i));
  113.         }
  114.        
  115.  
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement