Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.08 KB | None | 0 0
  1. import java.util.LinkedHashSet;
  2.  
  3. public class Main {
  4.  
  5.     private static int countCharter(String check_str, char needChar){
  6.         /**
  7.          * Метод для обраховування послідовності
  8.          *
  9.          * @param check_str - Рядок, який буде перевірятися
  10.          * @param needChar - Літера, послідовність якої обраховується
  11.          * @return Довжина послідовності [int]
  12.          * */
  13.         int counter = 0;
  14.  
  15.         for (int i = 0; i < check_str.length(); i++) {
  16.             if (needChar == check_str.charAt(i)){
  17.                 counter++;
  18.             }
  19.         }
  20.         return counter;
  21.     }
  22.  
  23.     private static String formateSequence(int number, char needChar){
  24.         /**
  25.          * Метод який розбиває послідовність на групи
  26.          *
  27.          * @param number - довжина послідовності
  28.          * @see #countCharter(String, char)
  29.          * @param needChar - Літера, послідовність якої розбивається на групи
  30.          * @return Довжина послідовності [int]
  31.          * */
  32.  
  33.         String result = String.valueOf(needChar);
  34.         int full = number / 9; // К-сть груп, які буду містити повну дев'ятку
  35.         int part = number % 9;
  36.  
  37.         for (int i = 0; i < full; i ++){
  38.             result += 9 + String.valueOf(needChar);
  39.         }
  40.  
  41.         if (part > 1){
  42.             result += part;
  43.         }
  44.  
  45.         return result;
  46.     }
  47.  
  48.     private static LinkedHashSet<Character> getUnique(String str)
  49.     {
  50.      /**
  51.      * Отримуємо унікальні літери із рядку
  52.      *
  53.      * @param str - Рядок, який ми отримаємо через параметр
  54.      * @return Множину із унікальними літерами [Character]
  55.      * */
  56.  
  57.         LinkedHashSet<Character> al = new LinkedHashSet<>();
  58.         char[] arr = str.toCharArray();
  59.         for (int i = 0; i < arr.length; i++)
  60.         {
  61.             al.add(arr[i]);
  62.         }
  63.  
  64.         return al;
  65.     }
  66.  
  67.  
  68.     public static void main(String[] args) {
  69.         System.out.println("Задано " + args.length + " параметр!\n");
  70.         LinkedHashSet<Character> uniques;
  71.  
  72.  
  73.         for (String arg : args) {
  74.             // Для кожного параметру перевіряємо чи він не пустий
  75.             if (arg.isEmpty()){
  76.                 System.out.println(' ');
  77.                 break;
  78.             }
  79.  
  80.             // Отримуємо унікальні літери із рядка
  81.             uniques = getUnique(arg);
  82.  
  83.             for (Character un: uniques){
  84.                 // Для кожної літери рахуємо її послідовність
  85.                 System.out.print(formateSequence(countCharter(arg, un), un));
  86.             }
  87.  
  88.             // Для гарного виводу
  89.             System.out.println();
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement