Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.util.Scanner;
- public class Main {
- static Scanner scanner;
- static String inputString() {
- String str;
- System.out.println("Введите предложение: ");
- str = scanner.nextLine();
- return str;
- }
- static String inputStringFromFile(String path) throws FileNotFoundException {
- String str;
- File file = new File(path);
- Scanner fileScanner = new Scanner(file);
- str = fileScanner.nextLine();
- return str;
- }
- static byte chooseSource() {
- boolean isIncorrect;
- byte source = 0;
- System.out.println("Выберите, как будет осуществлятся ввод и вывод данных, через файл или консоль.");
- System.out.print("Пожалуйста, сделайте выбор(1 - файл; 2 - консоль): ");
- do {
- isIncorrect = false;
- try {
- source = Byte.parseByte(scanner.nextLine());
- } catch (Exception ex) {
- isIncorrect = true;
- System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
- }
- if (source != 1 && source != 2 && !isIncorrect) {
- isIncorrect = true;
- System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
- }
- } while (isIncorrect);
- return source;
- }
- static String inputPathToFile() {
- boolean isIncorrect;
- String path;
- do {
- isIncorrect = false;
- path = scanner.nextLine();
- File file = new File(path);
- if (!file.exists()) {
- isIncorrect = true;
- System.out.print("Файл не найден! Введите правильную ссылку: ");
- }
- } while (isIncorrect);
- return path;
- }
- static String inputData(byte source) throws FileNotFoundException {
- String path;
- String str = "";
- switch (source) {
- case 1:
- System.out.print("Введите ссылку на файл ввода: ");
- path = inputPathToFile();
- str = inputStringFromFile(path);
- break;
- case 2:
- str = inputString();
- break;
- }
- return str;
- }
- static int[] searchHooks(String str) {
- int[] numberOfHooks = new int[2];
- for (int i = 0; i < str.length(); i++) {
- if (str.charAt(i) == '(')
- numberOfHooks[0]++;
- if (str.charAt(i) == ')')
- numberOfHooks[1]++;
- }
- return numberOfHooks;
- }
- static void outputToFile(String path, int[] numberOfHooks) throws IOException {
- FileWriter fileWriter = new FileWriter(path);
- if (numberOfHooks[0] == 0 && numberOfHooks[1] == 0)
- fileWriter.write("В данном предложении нет скобок.\n");
- else if (numberOfHooks[0] == numberOfHooks[1])
- fileWriter.write("Баланс скобок соблюдается.\n");
- else
- fileWriter.write("Баланс скобок не соблюдается.\n");
- fileWriter.close();
- }
- static void outputToConsole(int[] numberOfHooks) {
- if (numberOfHooks[0] == 0 && numberOfHooks[1] == 0)
- System.out.println("В данном предложении нет скобок.");
- else if (numberOfHooks[0] == numberOfHooks[1])
- System.out.println("Баланс скобок соблюдается.");
- else
- System.out.println("Баланс скобок не соблюдается.");
- }
- static void output(byte source, int[] numberOfHooks) throws IOException {
- String path;
- switch (source) {
- case 1:
- System.out.println("Введите ссылку на файл вывода: ");
- path = inputPathToFile();
- outputToFile(path, numberOfHooks);
- System.out.println("Данные успешно записаны в файл!");
- break;
- case 2:
- outputToConsole(numberOfHooks);
- break;
- }
- }
- public static void main(String[] args) throws IOException {
- scanner = new Scanner(System.in);
- System.out.println("Данная программа проверяет, имеется ли в заданном тексте баланс открывающих и закрывающих скобок.");
- byte source = chooseSource();
- String input = inputData(source);
- int[] numberOfHooks = searchHooks(input);
- output(source, numberOfHooks);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement