diff --git a/src/main/java/com/algos/hh/LogProcessor.java b/src/main/java/com/algos/hh/LogProcessor.java new file mode 100644 index 0000000..dab00ed --- /dev/null +++ b/src/main/java/com/algos/hh/LogProcessor.java @@ -0,0 +1,59 @@ +package com.algos.hh; + +//Обработка логов +// Вы работаете над системой анализа логов. Вам нужно разработать компонент для обработки и анализа строк. Этот компонент должен выполнять следующие операции: +// 1. Переворот строки +// 2. Удаление всех цифр из строки +// 3. Замена всех пробелов на подчеркивания (_) +// 4. Вставка последовательности LOG в начало строки. +// Затем система должна выводить обработанную строку. +// Формат ввода +// Одна строка, состоящая из различных латинских буквенных и числовых символов, а также пробелов. Длина строки — от 2 до 100 символов. +// Формат вывода +// Одна строка — исходная строка, к которой применили последовательность операций из условия задачи. +// Пример 1 +// Входные данные: +// Hello World 123 +// Выходные данные: +// LOG_dlroW_olleH +// Пример 2 +// Входные данные: +// 12345678 +// Выходные данные: +// LOG + +public class LogProcessor { + + public static void main(String[] args) { + + System.out.println(processLine("Hello World 123")); + System.out.println(processLine("12345678")); + } + + public static String processLine(String line) { + + String result = line; + result = removeDigits(result); + result = replaceSpaces(result); + result = reverse(result); + + return "LOG" + result; + } + + private static String reverse(String result) { + + StringBuilder stringBuilder = new StringBuilder(result); + return stringBuilder.reverse().toString(); + } + + private static String replaceSpaces(String result) { + + return result.replace(" ", "_"); + } + + private static String removeDigits(String result) { + + + return result.replaceAll("[0-9]",""); + } +} diff --git a/src/main/java/com/algos/hh/ShapeCalculator.java b/src/main/java/com/algos/hh/ShapeCalculator.java new file mode 100644 index 0000000..66e71a4 --- /dev/null +++ b/src/main/java/com/algos/hh/ShapeCalculator.java @@ -0,0 +1,47 @@ +package com.algos.hh; + +//Площадь и периметр +// Вы разрабатываете программу для обработки информации о фигурах на плоскости. Вам необходимо создать класс, который будет вычислять площадь и периметр фигуры. Программа работает с двумя типами фигур — круг и квадрат. +// Формат ввода +// Одна строка, состоящая из типа фигуры («круг» или «квадрат») и опционально — измерения (радиус для круга или длина стороны для квадрата). Они разделены пробелом. +// Измерение может быть как целым, так и вещественным числом. Если измерение не указано, оно должно приниматься по умолчанию за 1. +// Формат вывода +// Два числа: сначала площадь, затем периметр фигуры, разделенные пробелом. Оба числа отформатированы с точностью до двух знаков после точки, например: 8.00 12.01. +// Пример 1 +// Входные данные: +// круг 3 +// Выходные данные: +// 28.27 18.85 +// Пример 2 +// Входные данные: +// квадрат +// Выходные данные: +// 1.00 4.00 + +public class ShapeCalculator { + public static void main(String[] args) { + + System.out.println(calculate("круг 3")); + System.out.println(calculate("квадрат")); + } + + static public String calculate(String input) { + + String[] myArray = input.split(" "); + String shape = myArray[0]; + Double dim = myArray.length > 1 ? Double.parseDouble(myArray[1]) : 1.0; + double area = 0.0; + double perimeter = 0.0; + + switch (shape) { + case "круг": + area = Math.PI * dim * dim; + perimeter = 2 * Math.PI * dim; + break; + case "квадрат": + area = dim * dim; + perimeter = 4 * dim; + } + return String.format("%.2f %.2f", area, perimeter); + } +} \ No newline at end of file