/
Shalva
/
Lab4_DataPipeline
Обзор
Документация
Войти
/
Shalva
/
Lab4_DataPipeline
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/core/DataProcessor.java
100 строк
3 KB
Kvaratskheliia Shalva
Исходный код к проекту Lab4_DataPipeline
14 июн 2026, 18:57
14 июн 2026, 18:57
ac72959
Код
Авторство
О чём код?
package core; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class DataProcessor { public static void validateArgs(String[] args) { if (args == null || args.length < 3) { throw new IllegalArgumentException( "Недостаточно аргументов!\nИспользование: <имя_входного_файла> <имя_выходного_файла> <сдвиг_k>" ); } try { Integer.parseInt(args[2].trim()); } catch (NumberFormatException e) { throw new IllegalArgumentException("Ошибка: Третий аргумент (сдвиг k) должен быть целым числом."); } } public static String[] processPipeline(String[] args) { if (args == null || args.length < 2) { System.err.println("Ошибка конвейера: Массив должен содержать элементы списка и сдвиг k."); return new String[0]; } String kStr = args[args.length - 1]; int k = 0; try { k = Integer.parseInt(kStr.trim()); } catch (NumberFormatException e) { System.err.println("Ошибка конвейера: Элемент '" + kStr + "' не является целым числом k."); return new String[0]; } String[] dataStrings = new String[args.length - 1]; System.arraycopy(args, 0, dataStrings, 0, args.length - 1); List<Integer> numberList = convertToIntegerList(dataStrings); if (numberList.isEmpty()) { System.err.println("Предупреждение: Список элементов пуст."); return new String[0]; } processVariant16(numberList, k); return convertToStringArray(numberList); } public static void processVariant16(List<Integer> list, int k) { if (list == null || list.size() <= 1) { return; } int n = list.size(); k = k % n; if (k < 0) { k += n; } if (k == 0) { return; } reverse(list, 0, n - 1); reverse(list, 0, k - 1); reverse(list, k, n - 1); } private static List<Integer> convertToIntegerList(String[] strings) { List<Integer> list = new ArrayList<>(); for (String str : strings) { try { list.add(Integer.parseInt(str.trim())); } catch (NumberFormatException e) { System.err.println("Пропущено некорректное значение: '" + str + "'"); } } return list; } private static String[] convertToStringArray(List<Integer> list) { String[] result = new String[list.size()]; for (int i = 0; i < list.size(); i++) { result[i] = String.valueOf(list.get(i)); } return result; } private static void reverse(List<Integer> list, int start, int end) { while (start < end) { Collections.swap(list, start, end); start++; end--; } } }