Advertisement
Guest User

AnonymousThreat

a guest
Feb 19th, 2020
694
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.27 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Scanner;
  5.  
  6. public class AnonymousThreat {
  7.     public static void main(String[] args) {
  8.         Scanner scan = new Scanner(System.in);
  9.  
  10.         List<String> lineOfChars = getMyCollection(scan);
  11.  
  12.         String input = scan.nextLine();
  13.         while (!"3:1".equals(input)) {
  14.             String[] tokens = input.split("\\s+");
  15.  
  16.  
  17.             switch (tokens[0]) {
  18.  
  19.                 case "merge":
  20.                     int startIndex = Integer.parseInt(tokens[1]);
  21.                     int endIndex = Integer.parseInt(tokens[2]);
  22.                     mergeMyLine(lineOfChars, startIndex, endIndex);
  23.                     break;
  24.                 case "divide":
  25.                     int indexDivide = Integer.parseInt(tokens[1]);
  26.                     int divideTimes = Integer.parseInt(tokens[2]);
  27.  
  28.                     List<String> dividedString = new ArrayList<>();
  29.                     String currentElement = lineOfChars.get(indexDivide);
  30.                     int substringsLength = currentElement.length() / divideTimes;
  31.                     int count = 0;
  32.                     String separatedElement = "";
  33.                     int counterAdded = 0;
  34.  
  35.                     for (int i = 0; i < currentElement.length(); i++) {
  36.  
  37.                         char symbol = currentElement.charAt(i);
  38.                         separatedElement += symbol;
  39.                         count++;
  40.  
  41.                         if (count == substringsLength && counterAdded + 1 < divideTimes) {
  42.                             dividedString.add(separatedElement);
  43.                             count = 0;
  44.                             counterAdded++;
  45.                             separatedElement = "";
  46.                         }
  47.                     }
  48.                     dividedString.add(separatedElement);
  49.                     lineOfChars.remove(indexDivide);
  50.  
  51.                     for (int i = dividedString.size() - 1; i >= 0; i--) {
  52.                         lineOfChars.add(indexDivide, dividedString.get(i));
  53.                     }
  54.                     break;
  55.             }
  56.  
  57.  
  58.             input = scan.nextLine();
  59.         }
  60.  
  61.         // String[] elements =
  62.         // System.out.println(lineOfChars.toString());
  63.         for (String lineOfChar : lineOfChars) {
  64.             System.out.print(lineOfChar + " ");
  65.         }
  66.  
  67.     }
  68.  
  69.  
  70.     private static void mergeMyLine(List<String> lineOfChars, int startIndex, int endIndex) {
  71.         if (startIndex < 0) {
  72.             startIndex = 0;
  73.         }
  74.         if (endIndex > lineOfChars.size() - 1) {
  75.             endIndex = lineOfChars.size() - 1;
  76.         }
  77.         int counter = startIndex;
  78.         for (int i = startIndex; i < endIndex; i++) {
  79.             String concat = lineOfChars.get(counter) + lineOfChars.get(counter + 1);
  80.             lineOfChars.set(counter, concat);
  81.             lineOfChars.remove(counter + 1);
  82.         }
  83.     }
  84.  
  85.     private static List<String> getMyCollection(Scanner scan) {
  86.         String input = scan.nextLine();
  87.         String[] split = input.split("\\s+");
  88.         List<String> characters = new ArrayList<>();
  89.         for (String elements : split) {
  90.             String firstElement = elements;
  91.             characters.add(firstElement);
  92.         }
  93.         return characters;
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement