Advertisement
deced

Untitled

Dec 27th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.nio.file.Files;
  8. import java.util.Scanner;
  9.  
  10. public class Main {
  11. static Scanner scanner;
  12.  
  13. static String inputString() {
  14. String str;
  15. System.out.println("Введите предложение: ");
  16. str = scanner.nextLine();
  17. return str;
  18. }
  19.  
  20. static String inputStringFromFile(String path) throws FileNotFoundException {
  21. String str;
  22. File file = new File(path);
  23. Scanner fileScanner = new Scanner(file);
  24. str = fileScanner.nextLine();
  25. return str;
  26. }
  27.  
  28. static byte chooseSource() {
  29. boolean isIncorrect;
  30. byte source = 0;
  31. System.out.println("Выберите, как будет осуществлятся ввод и вывод данных, через файл или консоль.");
  32. System.out.print("Пожалуйста, сделайте выбор(1 - файл; 2 - консоль): ");
  33. do {
  34. isIncorrect = false;
  35. try {
  36. source = Byte.parseByte(scanner.nextLine());
  37. } catch (Exception ex) {
  38. isIncorrect = true;
  39. System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
  40. }
  41. if (source != 1 && source != 2 && !isIncorrect) {
  42. isIncorrect = true;
  43. System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
  44. }
  45. } while (isIncorrect);
  46. return source;
  47. }
  48.  
  49. static String inputPathToFile() {
  50. boolean isIncorrect;
  51. String path;
  52. do {
  53. isIncorrect = false;
  54. path = scanner.nextLine();
  55. File file = new File(path);
  56. if (!file.exists()) {
  57. isIncorrect = true;
  58. System.out.print("Файл не найден! Введите правильную ссылку: ");
  59. }
  60. } while (isIncorrect);
  61. return path;
  62. }
  63.  
  64. static String inputData(byte source) throws FileNotFoundException {
  65. String path;
  66. String str = "";
  67. switch (source) {
  68. case 1:
  69. System.out.print("Введите ссылку на файл ввода: ");
  70. path = inputPathToFile();
  71. str = inputStringFromFile(path);
  72. break;
  73. case 2:
  74. str = inputString();
  75. break;
  76. }
  77. return str;
  78. }
  79.  
  80. static int[] searchHooks(String str) {
  81. int[] numberOfHooks = new int[2];
  82. for (int i = 0; i < str.length(); i++) {
  83. if (str.charAt(i) == '(')
  84. numberOfHooks[0]++;
  85. if (str.charAt(i) == ')')
  86. numberOfHooks[1]++;
  87. }
  88. return numberOfHooks;
  89. }
  90.  
  91. static void outputToFile(String path, int[] numberOfHooks) throws IOException {
  92. FileWriter fileWriter = new FileWriter(path);
  93. if (numberOfHooks[0] == 0 && numberOfHooks[1] == 0)
  94. fileWriter.write("В данном предложении нет скобок.\n");
  95. else if (numberOfHooks[0] == numberOfHooks[1])
  96. fileWriter.write("Баланс скобок соблюдается.\n");
  97. else
  98. fileWriter.write("Баланс скобок не соблюдается.\n");
  99. fileWriter.close();
  100.  
  101. }
  102.  
  103. static void outputToConsole(int[] numberOfHooks) {
  104.  
  105. if (numberOfHooks[0] == 0 && numberOfHooks[1] == 0)
  106. System.out.println("В данном предложении нет скобок.");
  107. else if (numberOfHooks[0] == numberOfHooks[1])
  108. System.out.println("Баланс скобок соблюдается.");
  109. else
  110. System.out.println("Баланс скобок не соблюдается.");
  111. }
  112.  
  113. static void output(byte source, int[] numberOfHooks) throws IOException {
  114. String path;
  115. switch (source) {
  116. case 1:
  117. System.out.println("Введите ссылку на файл вывода: ");
  118. path = inputPathToFile();
  119. outputToFile(path, numberOfHooks);
  120. System.out.println("Данные успешно записаны в файл!");
  121. break;
  122. case 2:
  123. outputToConsole(numberOfHooks);
  124. break;
  125. }
  126. }
  127.  
  128. public static void main(String[] args) throws IOException {
  129. scanner = new Scanner(System.in);
  130. System.out.println("Данная программа проверяет, имеется ли в заданном тексте баланс открывающих и закрывающих скобок.");
  131. byte source = chooseSource();
  132. String input = inputData(source);
  133. int[] numberOfHooks = searchHooks(input);
  134. output(source, numberOfHooks);
  135. }
  136. }
  137.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement