John_IV

06 String Matrix Rotation

Jan 22nd, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.41 KB | None | 0 0
  1. package M03Java_Advanced.C01Java_Advanced.L02Multidimensional_Arrays.Multidimensional_Arrays_Exercises;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.Collections;
  8. import java.util.List;
  9.  
  10. public class E06StringMatrixRotation {
  11.     public static void main(String[] args) throws IOException {
  12.         BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14.         String input = rd.readLine();
  15.         int degrees = Integer.parseInt(input.substring(input.indexOf('(') + 1, input.indexOf(')')));
  16.         List<String> list = new ArrayList<>();
  17.         int maxSize = 0;
  18.  
  19.         while (!"END".equals(input = rd.readLine())) {
  20.             if (input.length() > maxSize)
  21.                 maxSize = input.length();
  22.  
  23.             list.add(input);
  24.         }
  25.  
  26.         switch (degrees % 360 / 90) {
  27.             case 0:
  28.                 list.forEach(System.out::println);
  29.                 break;
  30.  
  31.             case 1:
  32.                 Collections.reverse(list);
  33.                 for (int i = 0; i < maxSize; i++) {
  34.                     for (String s : list)
  35.                         if (s.length() > i)
  36.                             System.out.print(s.charAt(i));
  37.                         else
  38.                             System.out.print(" ");
  39.  
  40.                     System.out.println();
  41.                 }
  42.                 break;
  43.  
  44.             case 2:
  45.                 Collections.reverse(list);
  46.                 for (String s : list) {
  47.                     StringBuilder word = new StringBuilder(s);
  48.                     while (word.length() < maxSize)
  49.                         word.append(" ");
  50.  
  51.                     System.out.println(word.reverse().toString());
  52.                 }
  53.                 break;
  54.  
  55.             case 3:
  56.                 for (int i = 0; i < list.size(); i++) {
  57.                     String s = list.get(i);
  58.                     StringBuilder word = new StringBuilder(s);
  59.                     while (word.length() < maxSize)
  60.                         word.append(" ");
  61.  
  62.                     list.set(i, word.reverse().toString());
  63.                 }
  64.  
  65.                 for (int i = 0; i < maxSize; i++) {
  66.                     for (String word : list)
  67.                         System.out.print(word.charAt(i));
  68.  
  69.                     System.out.println();
  70.                 }
  71.                 break;
  72.         }
  73.     }
  74. }
Add Comment
Please, Sign In to add comment