Advertisement
mirozspace

SCP

Feb 22nd, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Scanner;
  5. import java.util.stream.Collectors;
  6.  
  7. public class CoursePlanning {
  8. public static void main(String[] args) {
  9. Scanner scanner = new Scanner(System.in);
  10. List<String> result = new ArrayList<>();
  11. List<String> lessons = Arrays.stream(scanner.nextLine()
  12. .split(", "))
  13. .collect(Collectors.toList());
  14. String initialScheduleLessons = scanner.nextLine();
  15. while (!"course start".equals(initialScheduleLessons)) {
  16. String[] commandArr = initialScheduleLessons.split(":");
  17. String command = commandArr[0];
  18. switch (command) {
  19. case "Add":
  20. result = addLessons(lessons, commandArr[1]);
  21. break;
  22. case "Insert":
  23. result = insertLessons(lessons, commandArr[1], Integer.parseInt(commandArr[2]));
  24. break;
  25. case "Remove":
  26. result = removeLessons(lessons, commandArr[1]);
  27. break;
  28. case "Swap":
  29. result = swapLessons(lessons, commandArr[1], commandArr[2]);
  30. break;
  31. case "Exercise":
  32. result = exerciseLessons(lessons, commandArr[1]);
  33. break;
  34. }
  35. initialScheduleLessons = scanner.nextLine();
  36. }
  37. for (int i = 0; i < result.size(); i++) {
  38. System.out.println(i + 1 + "." + result.get(i));
  39. }
  40. }
  41.  
  42. private static List<String> addLessons(List<String> lessons, String lessonTitle) {
  43. lessons.add(lessonTitle);
  44. return lessons;
  45. }
  46.  
  47. private static List<String> insertLessons(List<String> lessons, String lessonTitle, int index) {
  48. if (lessons.contains(lessonTitle)) return lessons;
  49. lessons.add(index, lessonTitle);
  50. return lessons;
  51. }
  52.  
  53. private static List<String> removeLessons(List<String> lessons, String lessonTitle) {
  54. String nameOfLesson = lessonTitle;
  55. String nameOfLessonExercise = lessonTitle + "-Exercise";
  56. for (int i = 0; i < lessons.size(); i++) {
  57. String searchLesseon = lessons.get(i);
  58. if (searchLesseon.equals(nameOfLesson)) {
  59. lessons.remove(i);
  60. }
  61. }
  62. for (int i = 0; i < lessons.size(); i++) {
  63. String searchLesseon = lessons.get(i);
  64. if (searchLesseon.equals(nameOfLessonExercise)) {
  65. lessons.remove(i);
  66. }
  67. }
  68. return lessons;
  69. }
  70.  
  71. private static List<String> swapLessons(List<String> lessons, String lesson, String secondLesson) {
  72. int index1Lesson = lessons.indexOf(lesson);
  73. int index2secondLesson = lessons.indexOf(secondLesson);
  74.  
  75. if (index1Lesson != -1 && index2secondLesson != -1) {
  76. lessons.set(index2secondLesson, lesson);
  77. lessons.set(index1Lesson, secondLesson);
  78. if (index1Lesson + 1 < lessons.size() && lessons.get(index1Lesson + 1).contains(lesson + "-Exercise")) {
  79. String course = lessons.get(index1Lesson + 1);
  80. lessons.remove(index1Lesson + 1);
  81. lessons.add(index2secondLesson + 1, course);
  82. }
  83. if (index2secondLesson + 1 < lessons.size() && lessons.get(index2secondLesson + 1).contains(secondLesson + "-Exercise")) {
  84. String course = lessons.get(index2secondLesson + 1);
  85. lessons.remove(index2secondLesson + 1);
  86. lessons.add(index1Lesson + 1, course);
  87. }
  88. }
  89. return lessons;
  90. }
  91.  
  92. private static List<String> exerciseLessons(List<String> lessons, String lessonTitle) {
  93.  
  94. String lessonTitleExer = lessonTitle + "-Exercise";
  95. if (!(lessons.contains(lessonTitle))) {
  96. lessons.add(lessonTitle);
  97. lessons.add(lessonTitleExer);
  98. } else if (lessons.contains(lessonTitle)) {
  99. if (!lessons.contains(lessonTitleExer)) {
  100. int position = lessons.indexOf(lessonTitle);
  101. lessons.add(position + 1, lessonTitleExer);
  102. }
  103. }
  104. return lessons;
  105. }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement