Advertisement
Notalisk

Тестовое задание

Feb 8th, 2025 (edited)
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.73 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class testTask1 {
  4.     public static void main(String[] args) {
  5.         System.out.println(textModifier());
  6.     }
  7.  
  8.     public static String textModifier() {
  9.         Scanner scan = new Scanner(System.in);
  10.         String oldText = scan.nextLine(); // Считываем текст на входе , гдe oldText это строка входа
  11.         StringBuilder newText = new StringBuilder();
  12.         ; // StringBuilder изменяем в отличии от String
  13.         int sumNum = 0;
  14.  
  15.         reWrite rw = new reWrite(); // переписывание текста
  16.         TestA testA = new TestA(); // TestA - class; textA - метод
  17.         TestB testB = new TestB();// TestB - class; textB - метод
  18.  
  19.         for (int i = 0; i < oldText.length(); i++) // проверка Теста А
  20.         {
  21.             char symbol = oldText.charAt(i);
  22.             if (testA.spaceCheck(symbol)) //testA вызов класса, spaceCheck вызов метода boolean
  23.             {
  24.                 newText.append(symbol);
  25.             }
  26.  
  27.         }
  28.         oldText = rw.noText(newText); // Очищаем newText и сохраняем старый текст
  29.  
  30.         for (int i = 0; i < oldText.length(); i++) // проверка Теста B
  31.         {
  32.             char symbol = oldText.charAt(i);
  33.             if (testB.minusCheck(oldText, symbol, i, newText)) //testB вызов класса, minusCheck вызов метода boolean
  34.             {
  35.                 char removedSymbol = newText.charAt(newText.length() - 1); // запоминаем символ перед -
  36.                 newText.deleteCharAt(newText.length() - 1); // удаляем его
  37.                 newText.append(oldText.charAt(i + 1)).append(removedSymbol); // вставляем символ после - и вставляем символ ,который был перед -
  38.                 i++; //Чтоб пропустить следующий символ после -
  39.             } else {
  40.                 newText.append(symbol);
  41.             }
  42.  
  43.         }
  44.         oldText = rw.noText(newText); // Очищаем newText и сохраняем старый текст
  45.  
  46.         for (int i = 0; i < oldText.length(); i++) // проверка Теста C
  47.         {
  48.             char symbol = oldText.charAt(i);
  49.             if (symbol == '+') {
  50.                 newText.append('!');
  51.             } else {
  52.                 newText.append(symbol);
  53.             }
  54.         }
  55.         oldText = rw.noText(newText); // Очищаем newText и сохраняем старый текст
  56.  
  57.         for (int i = 0; i < oldText.length(); i++) // проверка Теста D
  58.         {
  59.             char symbol = oldText.charAt(i);
  60.             if (Character.isDigit(symbol)) {
  61.                 int num = symbol - '0'; // перевод из строки в число
  62.                 sumNum += num;
  63.             } else {
  64.                 newText.append(symbol);
  65.             }
  66.         }
  67.         if (sumNum != 0) // проверка на показ суммы чисел в конце
  68.         {
  69.             newText.append(' ').append(sumNum);
  70.         }
  71.     String result = newText.toString().trim();
  72.     return result;
  73.     }
  74. }
  75. class reWrite {
  76.     public String noText (StringBuilder newText)
  77.     {
  78.         String oldText = newText.toString();
  79.         newText.setLength(0);
  80.         return oldText;
  81.     }
  82.  
  83. }
  84.  
  85.  
  86. class TestA //проверка по пробелу
  87. {
  88.         private int countSpace = 0; //Счётчик пробелов
  89.         public boolean spaceCheck (char symbol) {
  90.             if (symbol == ' ') //Проверка по ТЗ буква А
  91.             {
  92.                 if (countSpace == 0) {
  93.                     countSpace++;
  94.                     return true; // возврат к тому что добавляем пробел
  95.                 }
  96.                 else
  97.                 {
  98.                     return false; // возврат к тому что пропускаем символ
  99.                 }
  100.             } else
  101.             {
  102.                 countSpace = 0; // сброс счётчика
  103.                 return true;
  104.             }
  105.         }
  106. }
  107. class TestB //проверка по -
  108. {
  109.     public boolean minusCheck(String oldTextModified, char symbol , int i, StringBuilder newText) {
  110.         if (symbol == '-') // Проверка по ТЗ буква B
  111.         {
  112.             if (newText.length() > 0 && i + 1 < oldTextModified.length()) //проверка не находится ли - на границе}
  113.             {
  114.                 return true;
  115.             } else {
  116.                 return false;
  117.             }
  118.         }
  119.         else {
  120.             return false;
  121.         }
  122.     }
  123. }
  124.  
  125.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement