la-ma-rin

listOperations

Feb 24th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.04 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 listOperations {
  7.     public static void main(String[] args) {
  8.         Scanner scan = new Scanner(System.in);
  9.  
  10.         List<String> numbers = Arrays.stream(scan.nextLine()
  11.                 .split("\\s+"))
  12.                 .collect(Collectors.toList());
  13.  
  14.         String command = scan.nextLine();
  15.  
  16.         while (!"End".equals(command)) {
  17.  
  18.             String[] data = command.split("\\s+");
  19.             int index = 0;
  20.  
  21.             if (data.length == 3) {
  22.                 index = Integer.parseInt(data[2]);
  23.             } else if (data.length == 2) {
  24.                 index = Integer.parseInt(data[1]);
  25.             }
  26.  
  27.             if (index < 0 || index > numbers.size()) {
  28.                 System.out.println("Invalid index");
  29.                 command = scan.nextLine();
  30.                 continue;
  31.             }
  32.  
  33.             switch (data[0]) {
  34.                 case "Add":
  35.                     numbers.add(data[1]);
  36.                     break;
  37.                 case "Insert":
  38.                     numbers.add(index, data[1]);
  39.                     break;
  40.                 case "Remove":
  41.                     numbers.remove(index);
  42.                     break;
  43.  
  44.                 case "Shift":
  45.  
  46.                     if (data[1].equals("left")) {
  47.                         for (int i = 1; i <= index; i++) {
  48.                             numbers.add(numbers.get(0));
  49.                             numbers.remove(numbers.get(0));
  50.                         }
  51.                     } else if (data[1].equals("right")) {
  52.                         for (int i = 1; i <= index; i++) {
  53.                             numbers.add(0, numbers.get(numbers.size() - 1));
  54.                             numbers.remove(numbers.get(numbers.size() - 1));
  55.                         }
  56.                     }
  57.             }
  58.  
  59.             command = scan.nextLine();
  60.         }
  61.  
  62.         System.out.print(numbers.toString().replaceAll("[\\[\\],]", "").trim());
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment