Advertisement
venik2405

Untitled

Dec 9th, 2020
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.95 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.     static Scanner scConsole = new Scanner(System.in);
  7.  
  8.     static PrintWriter getOutputFileLocation() {
  9.         boolean isIncorrect;
  10.         String location;
  11.         PrintWriter file = null;
  12.         do {
  13.             isIncorrect = false;
  14.             System.out.println("Enter file location:");
  15.             location = scConsole.nextLine();
  16.             try {
  17.                 file = new PrintWriter(location);
  18.             } catch (FileNotFoundException e) {
  19.                 isIncorrect = true;
  20.                 System.out.println("File with this location is not found");
  21.             }
  22.         } while (isIncorrect);
  23.         if (file != null)
  24.             System.out.println("File opened successfully");
  25.         return file;
  26.     }
  27.  
  28.     static Scanner getInputFileLocation() {
  29.         boolean isIncorrect;
  30.         String location;
  31.         Scanner file = null;
  32.         do {
  33.             isIncorrect = false;
  34.             System.out.println("Enter file location:");
  35.             location = scConsole.nextLine();
  36.             try {
  37.                 file = new Scanner(new File(location));
  38.             } catch (FileNotFoundException e) {
  39.                 isIncorrect = true;
  40.                 System.out.println("File with this location is not found");
  41.             }
  42.         } while (isIncorrect);
  43.         if (file != null)
  44.             System.out.println("File opened successfully");
  45.         return file;
  46.     }
  47.  
  48.     static String getLineFromFile() {
  49.         String str = null;
  50.         Scanner file = getInputFileLocation();
  51.         boolean isIncorrect = false;
  52.         do {
  53.             try {
  54.                 str = file.nextLine();
  55.             } catch (Exception e) {
  56.                 isIncorrect = true;
  57.                 System.out.println("Enter natural number");
  58.             }
  59.             if ((!isIncorrect) && (str.length() == 0)) {
  60.                 System.out.println("The line is empty");
  61.                 isIncorrect = true;
  62.             }
  63.         } while (isIncorrect);
  64.         return str;
  65.     }
  66.  
  67.     static int findBalance(String str){
  68.         int flag = 0;
  69.         int i = 1;
  70.         while ((flag > -1) & (i < str.length())){
  71.             if (str.charAt(i) == '('){
  72.                 flag++;
  73.             }
  74.             if (str.charAt(i) == ')'){
  75.                 flag--;
  76.             }
  77.             i++;
  78.         }
  79.         return flag;
  80.     }
  81.  
  82.     static void printToConsole(int flag){
  83.         if (flag == 0){
  84.             System.out.println("В данном предложении баланс скобок соблюдён.");
  85.         } else {
  86.             System.out.println("Баланс скобок в данном предложении нарушен");
  87.         }
  88.     }
  89.  
  90.     static String getLineFromConsole () {
  91.         String str = null;
  92.         boolean isIncorrect;
  93.         do {
  94.             isIncorrect = false;
  95.             try {
  96.                 str = scConsole.nextLine();
  97.             } catch (Exception e) {
  98.                 System.out.println("Enter the number");
  99.                 isIncorrect = true;
  100.             }
  101.             if (str.length() == 0) {
  102.                 System.out.println("You entered an empty line!\nRepeat enter");
  103.                 isIncorrect = true;
  104.             }
  105.         } while (isIncorrect);
  106.         return str;
  107.     }
  108.  
  109.  
  110.     static void outputToFile(int flag) {
  111.         PrintWriter out = getOutputFileLocation();
  112.         if (flag == 0){
  113.             out.println("В данном предложении баланс скобок соблюдён.");
  114.         } else {
  115.             out.println("Баланс скобок в данном предложении нарушен");
  116.         }
  117.         out.close();
  118.     }
  119.  
  120.     static int chooseInput () {
  121.         boolean isIncorrect;
  122.         String line;
  123.         do {
  124.             isIncorrect = false;
  125.             System.out.println("Do you want to input from file? (y/n)");
  126.             line = scConsole.nextLine().toLowerCase();
  127.             if (!line.equals("y") && !line.equals("n") && !line.equals("")) {
  128.                 isIncorrect = true;
  129.                 System.out.println("Enter valid answer");
  130.             }
  131.         } while (isIncorrect);
  132.         if (line.equals("y") || line.equals("")) {
  133.             return 0;
  134.         } else {
  135.             return 1;
  136.         }
  137.     }
  138.  
  139.     public static void main (String[]args){
  140.         String str;
  141.         System.out.println("Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих скобок.");
  142.         int chosenInput = chooseInput();
  143.         System.out.println("Введите строку");
  144.         if (chosenInput == 0) {
  145.             str = getLineFromFile();
  146.         } else {
  147.             str = getLineFromConsole();
  148.         }
  149.         int flag = findBalance(str);
  150.         System.out.println("Результат:");
  151.         printToConsole(flag);
  152.         outputToFile(flag);
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement