/
Mozokhin
/
Dictionary
Обзор
Документация
Войти
/
Mozokhin
/
Dictionary
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
main.java
172 строки
5 KB
vladimir
коментарии
28 май 2024, 06:55
28 май 2024, 06:55
4df6ced
Код
Авторство
О чём код?
import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class main { public static void main(String[] args){ initial(); } // Метод для ввода данных с консоли public static String input(){ try (Scanner scanner = new Scanner(System.in)) { return scanner.nextLine(); } } static String path; // Начальный метод для работы с пользователем public static void initial(){ // Создаем экземпляры словарей DictNumb dictNumb = new DictNumb(); DictWords dictWords = new DictWords(); BaseDict dict; // Десериализуем словари из файлов dictNumb.deserialize("numdict"); dictWords.deserialize("worddict"); System.out.println(); System.out.println("Введите:\n" + "1 - Словарь латинскими словами 4 буквы\n" + "2 - Словарь с числами 5 цифр\n" + "3 - Показать все"); // Обрабатываем выбор пользователя switch (input()){ case "1": { path = getFilePath(); while(path.isBlank()) { path = getFilePath(); } dict = new DictWords(); dict.deserialize(path); opers(dict); break; } case "2": { path = getFilePath(); while(path.isBlank()) { path = getFilePath(); } dict = new DictNumb(); dict.deserialize(path); opers(dict); break; } case "3": { System.out.println("Словарь слов"); dictWords.printAll(); System.out.println("Словарь цифр"); dictNumb.printAll(); initial(); break; } default: initial(); } } // Метод для операций над словарем public static void opers(BaseDict dict){ System.out.println(); System.out.println("Выберите:\n" + "1 - Найти по ключу\n" + "2 - Добавить элемент\n" + "3 - Удалить элемент\n" + "4 - Посмотреть содержимое\n" + "5 - Назад"); String index = input(); switch (index){ case "1": { find(dict); break; } case "2": { add(dict); break; } case "3": { remove(dict); break; } case "4": { show(dict); break; } case "5": { initial(); break; } default: { opers(dict); } } } // Метод для поиска значений по ключу public static void find(BaseDict dict){ System.out.println("Введите ключ"); ArrayList<String> values; String str = input(); if (dict.getByKey(str) != null) { values = dict.getByKey(str); if (!values.isEmpty()) { System.out.println("Значения в ключе: "); for (String value : values) System.out.print(value + "; "); System.out.println(); } } opers(dict); } // Метод для удаления элемента по ключу public static void remove(BaseDict dict){ System.out.println("Введите ключ"); dict.removeByKey(input()); dict.serialize(path); opers(dict); } // Метод для отображения всех элементов словаря public static void show(BaseDict map){ map.printAll(); opers(map); } // Метод для добавления нового элемента в словарь public static void add(BaseDict dict){ System.out.println("Введите ключ"); String key = input(); if (dict.Check(key)){ String mask = dict.getMask(); while(!key.matches(mask)){ System.out.println("Неверный ключ"); key = input(); } } System.out.println("Введите значения через пробел"); ArrayList<String> values = new ArrayList<>(Arrays.asList(input().split(" "))); dict.add(key, values); dict.serialize(path); opers(dict); } // Метод для получения пути к файлу от пользователя public static String getFilePath(){ System.out.println("Введите имя файла без расширения:"); String path1 = input(); File f = new File(path1 + ".ser"); if (!f.exists() || f.isDirectory()){ return ""; } return path1; } }