From 8be487004683e768cfa8a1d64bf7ab5c8cb1d7b2 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Fri, 22 Aug 2025 10:34:40 +0300 Subject: [PATCH 01/10] ADD MainApp Clarifying the encryption request, waiting fir keyboard input --- src/main/java/com/javarush/toporov/MainApp.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/com/javarush/toporov/MainApp.java diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java new file mode 100644 index 0000000..3db7f5d --- /dev/null +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -0,0 +1,11 @@ +package com.javarush.toporov; + +import java.util.Scanner; + +public class MainApp { + public static void main(String[] args) { + System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); + Scanner scanner = new Scanner(System.in); + String console = scanner.nextLine(); + } +} From 638fb04ca7f4c5f86bc6876a33455b5322ae3750 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Tue, 26 Aug 2025 17:18:42 +0300 Subject: [PATCH 02/10] FIX MainApp ADD Caesar Cipher in Caesar Cipher created only encrypt --- .../com/javarush/toporov/CaesarCipher.java | 45 +++++++++++++++++++ .../java/com/javarush/toporov/MainApp.java | 40 +++++++++++++++-- 2 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/javarush/toporov/CaesarCipher.java diff --git a/src/main/java/com/javarush/toporov/CaesarCipher.java b/src/main/java/com/javarush/toporov/CaesarCipher.java new file mode 100644 index 0000000..2ce0814 --- /dev/null +++ b/src/main/java/com/javarush/toporov/CaesarCipher.java @@ -0,0 +1,45 @@ +package com.javarush.toporov; + +public class CaesarCipher { + public final static char[] ALPHABET = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".toCharArray(); + + public static String encrypt(String text, int shift) { + + //создание пустой строки для сохранения результата + StringBuilder result = new StringBuilder(); + + //перебор входного текста + for (int i = 0; i < text.length(); i++) { + boolean found = false; + + //берем текущий символ из строки + char currentChar = text.charAt(i); + + //поиск текущей буквы currentChar в массиве ALPHABET + for (int j = 0; j < ALPHABET.length; j++) { + + //сравниваю букву из текста с буквой из алфавита + if (currentChar == ALPHABET[j]) ; + //j- индекс буквы в алфавите, shift - на сколько нужно сдвинуть, % ALPHABET.length - что бы не выйти за границы + int newIndex = (j + shift) % ALPHABET.length; + + if (newIndex < 0) + //добавляем в результат зашифрованную букву + result.append(ALPHABET[newIndex]); + //если true значит буква обработана + found = true; + break; + } + //если символ не нашёлся в алфавите, оставляем без изменений + if (!found) { + result.append(currentChar); + } + } + return result.toString(); + } + + public static String decrypt(String text, int shift) { + return null; + } + +} diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index 3db7f5d..7bf63c2 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -1,11 +1,45 @@ package com.javarush.toporov; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Scanner; public class MainApp { - public static void main(String[] args) { - System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); + public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); - String console = scanner.nextLine(); + + System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); + int choice = Integer.parseInt(scanner.nextLine()); + + System.out.println("Choose key:"); + int shift = Integer.parseInt(scanner.nextLine()); + + System.out.println("Do you want to work with a file or a console? \n 1. File \n 2.Console"); + int mode = Integer.parseInt(scanner.nextLine()); + + String inputText; + if (mode == 1) { + System.out.println("Enter the path to the file:"); + String path = scanner.nextLine(); + inputText = Files.readString(Path.of(path), StandardCharsets.UTF_8); + } else { + System.out.println("Enter the text:"); + inputText = scanner.nextLine(); + } + String result; + if (choice == 1) { + result = CaesarCipher.encrypt(inputText, shift); + } else { + result = CaesarCipher.decrypt(inputText, shift); + } + if (mode == 1) { + Files.writeString(Path.of("output.txt"), result, StandardCharsets.UTF_8); + System.out.println("The result is saved in output.txt"); + } else { + System.out.println("The result: " + result); + } + } } From 943af3a729bdf3b9f0de2fbc717c126091c3ecfd Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Wed, 27 Aug 2025 22:08:17 +0300 Subject: [PATCH 03/10] FIX MainApp FIX Caesar Cipher --- .../com/javarush/toporov/CaesarCipher.java | 45 +++++++++++++------ .../java/com/javarush/toporov/MainApp.java | 2 +- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/javarush/toporov/CaesarCipher.java b/src/main/java/com/javarush/toporov/CaesarCipher.java index 2ce0814..640256d 100644 --- a/src/main/java/com/javarush/toporov/CaesarCipher.java +++ b/src/main/java/com/javarush/toporov/CaesarCipher.java @@ -1,11 +1,13 @@ package com.javarush.toporov; public class CaesarCipher { - public final static char[] ALPHABET = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".toCharArray(); + public final static char[] ALPHABET_UPPER = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".toCharArray(); + public final static char[] ALPHABET_LOWER = "абвгдеёдзийклмнопрстуфхцчшщъыьэюя".toCharArray(); public static String encrypt(String text, int shift) { //создание пустой строки для сохранения результата + StringBuilder result = new StringBuilder(); //перебор входного текста @@ -16,22 +18,37 @@ public static String encrypt(String text, int shift) { char currentChar = text.charAt(i); //поиск текущей буквы currentChar в массиве ALPHABET - for (int j = 0; j < ALPHABET.length; j++) { + for (int j = 0; j < ALPHABET_UPPER.length; j++) { //сравниваю букву из текста с буквой из алфавита - if (currentChar == ALPHABET[j]) ; - //j- индекс буквы в алфавите, shift - на сколько нужно сдвинуть, % ALPHABET.length - что бы не выйти за границы - int newIndex = (j + shift) % ALPHABET.length; - - if (newIndex < 0) - //добавляем в результат зашифрованную букву - result.append(ALPHABET[newIndex]); - //если true значит буква обработана - found = true; - break; + if (currentChar == ALPHABET_UPPER[j]) { + //j- индекс буквы в алфавите, shift - на сколько нужно сдвинуть, % ALPHABET.length - что бы не выйти за границы + int newIndex = (j + shift) % ALPHABET_UPPER.length; + + if (newIndex < 0) { + //добавляем в результат зашифрованную букву + newIndex += ALPHABET_UPPER.length; + } + result.append(ALPHABET_UPPER[newIndex]); + found = true; + break; + } } - //если символ не нашёлся в алфавите, оставляем без изменений + //если символ не нашёлся в алфавите, проверяем маленькие буквы if (!found) { + for (int j = 0; j < ALPHABET_LOWER.length; j++) { + if(currentChar == ALPHABET_LOWER[j]){ + int newIndex = j + shift; + newIndex = newIndex % ALPHABET_LOWER.length; + if (newIndex < 0) { + newIndex = newIndex + ALPHABET_LOWER.length; + } + result.append(ALPHABET_LOWER[newIndex]); + found = true; + break; + } + + } result.append(currentChar); } } @@ -39,7 +56,7 @@ public static String encrypt(String text, int shift) { } public static String decrypt(String text, int shift) { - return null; + return encrypt(text, -shift); } } diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index 7bf63c2..10faaf8 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -16,7 +16,7 @@ public static void main(String[] args) throws IOException { System.out.println("Choose key:"); int shift = Integer.parseInt(scanner.nextLine()); - System.out.println("Do you want to work with a file or a console? \n 1. File \n 2.Console"); + System.out.println("Do you want to work with a file or a console? \n 1. File \n 2. Console"); int mode = Integer.parseInt(scanner.nextLine()); String inputText; From 1f91d6c2e9f52d55ec0c0c96df8cd0ee5a3fedc6 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Thu, 28 Aug 2025 16:17:16 +0300 Subject: [PATCH 04/10] FIX MainApp FIX Caesar Cipher --- src/main/java/com/javarush/toporov/CaesarCipher.java | 5 +++++ src/main/java/com/javarush/toporov/MainApp.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/com/javarush/toporov/CaesarCipher.java b/src/main/java/com/javarush/toporov/CaesarCipher.java index 640256d..8f1f24e 100644 --- a/src/main/java/com/javarush/toporov/CaesarCipher.java +++ b/src/main/java/com/javarush/toporov/CaesarCipher.java @@ -49,9 +49,14 @@ public static String encrypt(String text, int shift) { } } + + } + if (!found){ result.append(currentChar); } } + + return result.toString(); } diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index 10faaf8..952bba3 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -28,12 +28,16 @@ public static void main(String[] args) throws IOException { System.out.println("Enter the text:"); inputText = scanner.nextLine(); } + String result; if (choice == 1) { result = CaesarCipher.encrypt(inputText, shift); } else { result = CaesarCipher.decrypt(inputText, shift); } + + + if (mode == 1) { Files.writeString(Path.of("output.txt"), result, StandardCharsets.UTF_8); System.out.println("The result is saved in output.txt"); From 1ec1c9590d8a29188ff040f8ea3364eb01307898 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Fri, 29 Aug 2025 12:31:30 +0300 Subject: [PATCH 05/10] FIX MainApp FIX Caesar Cipher ADD FileHandler ADD UserInterface --- .../com/javarush/toporov/CaesarCipher.java | 2 +- .../com/javarush/toporov/FileHandler.java | 29 ++++++++ .../java/com/javarush/toporov/MainApp.java | 41 ++++++----- .../com/javarush/toporov/UserInterface.java | 72 +++++++++++++++++++ 4 files changed, 122 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/javarush/toporov/FileHandler.java create mode 100644 src/main/java/com/javarush/toporov/UserInterface.java diff --git a/src/main/java/com/javarush/toporov/CaesarCipher.java b/src/main/java/com/javarush/toporov/CaesarCipher.java index 8f1f24e..cefe614 100644 --- a/src/main/java/com/javarush/toporov/CaesarCipher.java +++ b/src/main/java/com/javarush/toporov/CaesarCipher.java @@ -2,7 +2,7 @@ public class CaesarCipher { public final static char[] ALPHABET_UPPER = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".toCharArray(); - public final static char[] ALPHABET_LOWER = "абвгдеёдзийклмнопрстуфхцчшщъыьэюя".toCharArray(); + public final static char[] ALPHABET_LOWER = "абвгдеёзийклмнопрстуфхцчшщъыьэюя".toCharArray(); public static String encrypt(String text, int shift) { diff --git a/src/main/java/com/javarush/toporov/FileHandler.java b/src/main/java/com/javarush/toporov/FileHandler.java new file mode 100644 index 0000000..24dcbab --- /dev/null +++ b/src/main/java/com/javarush/toporov/FileHandler.java @@ -0,0 +1,29 @@ +package com.javarush.toporov; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; + +public class FileHandler { + public String readStringFromFile(String path) { + try { + return Files.readString(Path.of(path), StandardCharsets.UTF_8); + } catch (IOException e) { + System.out.println("Error reading file."); + return null; + } + } + + public void writeStringToFile(String inputPath, String content) { + Path parent = Path.of(inputPath).getParent(); + Path outputPath = parent.resolve("output.txt"); + try { + Files.writeString(outputPath, content, StandardCharsets.UTF_8); + System.out.println("The result is saved in output.txt"); + } catch (IOException e) { + System.out.println("An error occurred while writing to the output file."); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index 952bba3..f6f8ec8 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -1,5 +1,6 @@ package com.javarush.toporov; + import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -7,28 +8,30 @@ import java.util.Scanner; public class MainApp { - public static void main(String[] args) throws IOException { - Scanner scanner = new Scanner(System.in); - - System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); - int choice = Integer.parseInt(scanner.nextLine()); + public static void main(String[] args) { + UserInterface ui = new UserInterface(); + FileHandler fh = new FileHandler(); - System.out.println("Choose key:"); - int shift = Integer.parseInt(scanner.nextLine()); + String path = null; + String inputText = null; - System.out.println("Do you want to work with a file or a console? \n 1. File \n 2. Console"); - int mode = Integer.parseInt(scanner.nextLine()); + int choice = ui.getEncryptionMethodChoice(); + int shift = ui.getKey(); + int mode = ui.getWorkModeChoice(); - String inputText; if (mode == 1) { - System.out.println("Enter the path to the file:"); - String path = scanner.nextLine(); - inputText = Files.readString(Path.of(path), StandardCharsets.UTF_8); + path = ui.getFilePath(); + if (path != null) { + inputText = fh.readStringFromFile(path); + } } else { - System.out.println("Enter the text:"); - inputText = scanner.nextLine(); + inputText = ui.getTextFromConsole(); } + if (inputText == null) { + System.out.println("No input text was provided. Exiting."); + return; + } String result; if (choice == 1) { result = CaesarCipher.encrypt(inputText, shift); @@ -36,14 +39,10 @@ public static void main(String[] args) throws IOException { result = CaesarCipher.decrypt(inputText, shift); } - - if (mode == 1) { - Files.writeString(Path.of("output.txt"), result, StandardCharsets.UTF_8); - System.out.println("The result is saved in output.txt"); + fh.writeStringToFile(path, result); } else { - System.out.println("The result: " + result); + ui.printResult(result); } - } } diff --git a/src/main/java/com/javarush/toporov/UserInterface.java b/src/main/java/com/javarush/toporov/UserInterface.java new file mode 100644 index 0000000..83d2ff0 --- /dev/null +++ b/src/main/java/com/javarush/toporov/UserInterface.java @@ -0,0 +1,72 @@ +package com.javarush.toporov; + +import java.io.IOException; +import java.util.Scanner; + +public class UserInterface { + Scanner scanner = new Scanner(System.in); + + public int getEncryptionMethodChoice() { + while (true) { + System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); + try { + int choice = Integer.parseInt(scanner.nextLine()); + if (choice == 1 || choice == 2) { + return choice; + } else { + System.out.println("Please enter the correct value (1 or 2)."); + } + } catch (NumberFormatException e) { + System.out.println("Invalid input. Please enter a number."); + } + } + } + + public int getKey() { + while (true) { + System.out.println("Choose key:"); + try { + return Integer.parseInt(scanner.nextLine()); + } catch (NumberFormatException e) { + System.out.println("Invalid input. Please enter a number."); + } + } + } + + public int getWorkModeChoice() { + while (true) { + System.out.println("Do you want to work with a file or a console? \n 1. File \n 2. Console"); + try { + int mode = Integer.parseInt(scanner.nextLine()); + if (mode == 1 || mode == 2) { + return mode; + } else { + System.out.println("Please enter the correct value (1 or 2)."); + } + } catch (NumberFormatException e) { + System.out.println("Invalid input. Please enter a number."); + } + } + } + + public String getFilePath() { + while (true) { + System.out.println("Enter the path to the file:"); + String path = scanner.nextLine(); + if (path != null && !path.trim().isEmpty()) { + return path; + } else { + System.out.println("Please specify a valid file path."); + } + } + } + + public String getTextFromConsole() { + System.out.println("Enter the text:"); + return scanner.nextLine(); + } + + public void printResult(String result) { + System.out.println("The result: " + result); + } +} From 4f18bcf656e448028c29367868a31bb84153b609 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Fri, 29 Aug 2025 12:47:19 +0300 Subject: [PATCH 06/10] FIX MainApp FIX FileHandler FIX UserInterface --- .../java/com/javarush/toporov/FileHandler.java | 7 +++++++ src/main/java/com/javarush/toporov/MainApp.java | 16 ++++++++++++---- .../com/javarush/toporov/UserInterface.java | 17 ++++++++++++----- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/javarush/toporov/FileHandler.java b/src/main/java/com/javarush/toporov/FileHandler.java index 24dcbab..53b3b7c 100644 --- a/src/main/java/com/javarush/toporov/FileHandler.java +++ b/src/main/java/com/javarush/toporov/FileHandler.java @@ -6,17 +6,24 @@ import java.nio.file.Path; public class FileHandler { + + // Метод для чтения содержимого файла public String readStringFromFile(String path) { try { + // Чтение файла и возврат содержимого return Files.readString(Path.of(path), StandardCharsets.UTF_8); } catch (IOException e) { + // Ловим ошибку, если файл не найден или недоступен System.out.println("Error reading file."); return null; } } + // Метод для записи в файл public void writeStringToFile(String inputPath, String content) { + // Получение родительской папки из пути исходного файл Path parent = Path.of(inputPath).getParent(); + // Создание пути для нового файла с именем "output.txt" Path outputPath = parent.resolve("output.txt"); try { Files.writeString(outputPath, content, StandardCharsets.UTF_8); diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index f6f8ec8..df31f0a 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -19,29 +19,37 @@ public static void main(String[] args) { int shift = ui.getKey(); int mode = ui.getWorkModeChoice(); + // Если пользователь выбрал работу с файлом if (mode == 1) { + // Получение пути к файлу от пользователя path = ui.getFilePath(); + // Проверка, что путь не пустой if (path != null) { + // Чтение текста из файла с помощью FileHandler inputText = fh.readStringFromFile(path); } } else { + // Получение текста напрямую из консоли inputText = ui.getTextFromConsole(); } - if (inputText == null) { - System.out.println("No input text was provided. Exiting."); - return; - } + String result; + // Если выбран режим шифрования if (choice == 1) { + // Шифрование текста result = CaesarCipher.encrypt(inputText, shift); } else { result = CaesarCipher.decrypt(inputText, shift); } + // Если результат нужно сохранить в файл if (mode == 1) { + // Запись результата в файл fh.writeStringToFile(path, result); + } else { + // Вывод результата - консоль ui.printResult(result); } } diff --git a/src/main/java/com/javarush/toporov/UserInterface.java b/src/main/java/com/javarush/toporov/UserInterface.java index 83d2ff0..bac1662 100644 --- a/src/main/java/com/javarush/toporov/UserInterface.java +++ b/src/main/java/com/javarush/toporov/UserInterface.java @@ -6,7 +6,9 @@ public class UserInterface { Scanner scanner = new Scanner(System.in); + // Метод для получения выбора шифрования/дешифрования. public int getEncryptionMethodChoice() { + // Бесконечный цикл, который работает до получения верного ответа while (true) { System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); try { @@ -14,15 +16,19 @@ public int getEncryptionMethodChoice() { if (choice == 1 || choice == 2) { return choice; } else { + // если число некорректно System.out.println("Please enter the correct value (1 or 2)."); } + // Ловим ошибку, если введено не число } catch (NumberFormatException e) { System.out.println("Invalid input. Please enter a number."); } } } + // Метод для получения ключа (сдвига) public int getKey() { + // Цикл для проверки корректности ввода ключа while (true) { System.out.println("Choose key:"); try { @@ -33,7 +39,9 @@ public int getKey() { } } + // Метод для получения выбора режима (файл/консоль) public int getWorkModeChoice() { + // Цикл для проверки корректности ввода режима while (true) { System.out.println("Do you want to work with a file or a console? \n 1. File \n 2. Console"); try { @@ -49,23 +57,22 @@ public int getWorkModeChoice() { } } + // Метод для получения пути к файлу public String getFilePath() { + // Цикл для проверки, что путь не пустой while (true) { System.out.println("Enter the path to the file:"); String path = scanner.nextLine(); - if (path != null && !path.trim().isEmpty()) { - return path; - } else { - System.out.println("Please specify a valid file path."); - } } } + // Метод для получения текста из консоли public String getTextFromConsole() { System.out.println("Enter the text:"); return scanner.nextLine(); } + // Метод для вывода результата в консоль public void printResult(String result) { System.out.println("The result: " + result); } From 6d066caecb1117d0566af215dc13589ad82518f7 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Fri, 29 Aug 2025 13:06:01 +0300 Subject: [PATCH 07/10] FIX UserInterface --- src/main/java/com/javarush/toporov/UserInterface.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/javarush/toporov/UserInterface.java b/src/main/java/com/javarush/toporov/UserInterface.java index bac1662..9dafcd7 100644 --- a/src/main/java/com/javarush/toporov/UserInterface.java +++ b/src/main/java/com/javarush/toporov/UserInterface.java @@ -59,13 +59,18 @@ public int getWorkModeChoice() { // Метод для получения пути к файлу public String getFilePath() { - // Цикл для проверки, что путь не пустой while (true) { System.out.println("Enter the path to the file:"); String path = scanner.nextLine(); + if (path != null && !path.trim().isEmpty()) { + return path; + } else { + System.out.println("Please specify a valid file path."); + } } } + // Метод для получения текста из консоли public String getTextFromConsole() { System.out.println("Enter the text:"); From e26a862e15551d1876d83ef4c9d9724cc1157636 Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Wed, 3 Sep 2025 14:29:30 +0300 Subject: [PATCH 08/10] FIX MainApp FIX UserInterface --- src/main/java/com/javarush/toporov/MainApp.java | 5 +++-- src/main/java/com/javarush/toporov/UserInterface.java | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index df31f0a..fd5dffe 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -12,6 +12,7 @@ public static void main(String[] args) { UserInterface ui = new UserInterface(); FileHandler fh = new FileHandler(); + String path = null; String inputText = null; @@ -34,12 +35,12 @@ public static void main(String[] args) { } - String result; + String result = ""; // Если выбран режим шифрования if (choice == 1) { // Шифрование текста result = CaesarCipher.encrypt(inputText, shift); - } else { + } else if(choice == 2) { result = CaesarCipher.decrypt(inputText, shift); } diff --git a/src/main/java/com/javarush/toporov/UserInterface.java b/src/main/java/com/javarush/toporov/UserInterface.java index 9dafcd7..70f7b63 100644 --- a/src/main/java/com/javarush/toporov/UserInterface.java +++ b/src/main/java/com/javarush/toporov/UserInterface.java @@ -10,10 +10,10 @@ public class UserInterface { public int getEncryptionMethodChoice() { // Бесконечный цикл, который работает до получения верного ответа while (true) { - System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt"); + System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt \n 3. BruteForce"); try { int choice = Integer.parseInt(scanner.nextLine()); - if (choice == 1 || choice == 2) { + if (choice == 1 || choice == 2 || choice ==3) { return choice; } else { // если число некорректно @@ -46,7 +46,7 @@ public int getWorkModeChoice() { System.out.println("Do you want to work with a file or a console? \n 1. File \n 2. Console"); try { int mode = Integer.parseInt(scanner.nextLine()); - if (mode == 1 || mode == 2) { + if (mode == 1 || mode == 2 ) { return mode; } else { System.out.println("Please enter the correct value (1 or 2)."); From 9cf51bc352660b34f4c4713d70086989016f00fa Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Wed, 3 Sep 2025 14:30:30 +0300 Subject: [PATCH 09/10] FIX UserInterface --- src/main/java/com/javarush/toporov/UserInterface.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/javarush/toporov/UserInterface.java b/src/main/java/com/javarush/toporov/UserInterface.java index 70f7b63..53ea772 100644 --- a/src/main/java/com/javarush/toporov/UserInterface.java +++ b/src/main/java/com/javarush/toporov/UserInterface.java @@ -13,7 +13,7 @@ public int getEncryptionMethodChoice() { System.out.println("Choose an encryption, method: \n 1. Encrypt \n 2. Decrypt \n 3. BruteForce"); try { int choice = Integer.parseInt(scanner.nextLine()); - if (choice == 1 || choice == 2 || choice ==3) { + if (choice == 1 || choice == 2) { return choice; } else { // если число некорректно From be38c94859ed17d1f67cb92f00eaddf1d5b5fc4a Mon Sep 17 00:00:00 2001 From: "Ilya T." Date: Wed, 3 Sep 2025 14:33:24 +0300 Subject: [PATCH 10/10] Push --- src/main/java/com/javarush/toporov/CaesarCipher.java | 5 ++--- src/main/java/com/javarush/toporov/FileHandler.java | 2 +- src/main/java/com/javarush/toporov/MainApp.java | 2 +- src/main/java/com/javarush/toporov/UserInterface.java | 1 + 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/javarush/toporov/CaesarCipher.java b/src/main/java/com/javarush/toporov/CaesarCipher.java index cefe614..797f76f 100644 --- a/src/main/java/com/javarush/toporov/CaesarCipher.java +++ b/src/main/java/com/javarush/toporov/CaesarCipher.java @@ -37,7 +37,7 @@ public static String encrypt(String text, int shift) { //если символ не нашёлся в алфавите, проверяем маленькие буквы if (!found) { for (int j = 0; j < ALPHABET_LOWER.length; j++) { - if(currentChar == ALPHABET_LOWER[j]){ + if (currentChar == ALPHABET_LOWER[j]) { int newIndex = j + shift; newIndex = newIndex % ALPHABET_LOWER.length; if (newIndex < 0) { @@ -51,12 +51,11 @@ public static String encrypt(String text, int shift) { } } - if (!found){ + if (!found) { result.append(currentChar); } } - return result.toString(); } diff --git a/src/main/java/com/javarush/toporov/FileHandler.java b/src/main/java/com/javarush/toporov/FileHandler.java index 53b3b7c..b6fe908 100644 --- a/src/main/java/com/javarush/toporov/FileHandler.java +++ b/src/main/java/com/javarush/toporov/FileHandler.java @@ -7,7 +7,7 @@ public class FileHandler { - // Метод для чтения содержимого файла + // Метод для чтения содержимого файлf public String readStringFromFile(String path) { try { // Чтение файла и возврат содержимого diff --git a/src/main/java/com/javarush/toporov/MainApp.java b/src/main/java/com/javarush/toporov/MainApp.java index fd5dffe..0127588 100644 --- a/src/main/java/com/javarush/toporov/MainApp.java +++ b/src/main/java/com/javarush/toporov/MainApp.java @@ -40,7 +40,7 @@ public static void main(String[] args) { if (choice == 1) { // Шифрование текста result = CaesarCipher.encrypt(inputText, shift); - } else if(choice == 2) { + } else if (choice == 2) { result = CaesarCipher.decrypt(inputText, shift); } diff --git a/src/main/java/com/javarush/toporov/UserInterface.java b/src/main/java/com/javarush/toporov/UserInterface.java index 53ea772..018eb79 100644 --- a/src/main/java/com/javarush/toporov/UserInterface.java +++ b/src/main/java/com/javarush/toporov/UserInterface.java @@ -1,5 +1,6 @@ package com.javarush.toporov; + import java.io.IOException; import java.util.Scanner;