From 8ceb2551819be0aaa7bb5ae11737639443b1533b Mon Sep 17 00:00:00 2001 From: Kirill <44455851+Rambo232@users.noreply.github.com> Date: Tue, 11 Dec 2018 21:51:14 +0300 Subject: [PATCH 1/2] Stage 4 --- src/repl/Main.java | 57 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/src/repl/Main.java b/src/repl/Main.java index 625a751..0c1cf29 100644 --- a/src/repl/Main.java +++ b/src/repl/Main.java @@ -1,7 +1,60 @@ package repl; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - System.out.print("Hello world!"); + Scanner scanner = new Scanner(System.in); + int result = 0; + int sub = 0; + boolean yes = true; + while (yes) { + String operation = scanner.nextLine(); + while (yes) { + while (operation.equals("/help")) { + System.out.println("This code is work!"); + operation = scanner.nextLine(); + } + while (operation.equals("/exit")) { + System.out.println("Hasta la vista!"); + yes = false; + break; + } + while (operation.matches("\\S*")&&!operation.matches("\\d*")&&yes) { + System.out.println("Invalid sequence of symbols to calculate!"); + operation = scanner.nextLine(); + } + if (operation.matches("[^A-Za-z]*")) { + break; + } + } + while (yes) { + String[] arr = operation.split("\\s+"); + String mOperation = ""; + for (int i = 0; i < arr.length; i++) { + if (arr[i].matches("\\++")) { + mOperation += " "; + } else if (arr[i].matches("\\-")&&!arr[i+1].matches("\\-")) { + arr[i + 1] = '-' + arr[i + 1]; + arr[i] = " "; + mOperation += " "; + }else if (arr[i].matches("\\-{2}|\\-{4}|\\-{6}|\\-{8}")){ + mOperation+= " "; + }else if (arr[i].matches("\\-{3}|\\-{5}|\\-{7}|\\-{9}")){ + arr[i + 1] = '-' + arr[i + 1]; + arr[i] = " "; + mOperation += " "; + } + else mOperation += arr[i]; + } + String[] arr2 = mOperation.split("\\s+"); + for (String ch : arr2) { + result += Integer.parseInt(ch); + } + System.out.println(result); + result = 0; + break; + } + } } -} \ No newline at end of file +} From f490c86018d866bee5e3ff268f9ac757c0474000 Mon Sep 17 00:00:00 2001 From: Kirill <44455851+Rambo232@users.noreply.github.com> Date: Thu, 20 Dec 2018 17:41:44 +0300 Subject: [PATCH 2/2] Stage 5 --- src/repl/Main.java | 90 ++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/src/repl/Main.java b/src/repl/Main.java index 0c1cf29..3333267 100644 --- a/src/repl/Main.java +++ b/src/repl/Main.java @@ -2,59 +2,53 @@ import java.util.Scanner; -public class Main { +public class aMain { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); - int result = 0; - int sub = 0; boolean yes = true; - while (yes) { + do { + int result = 0; String operation = scanner.nextLine(); - while (yes) { - while (operation.equals("/help")) { - System.out.println("This code is work!"); - operation = scanner.nextLine(); - } - while (operation.equals("/exit")) { - System.out.println("Hasta la vista!"); - yes = false; - break; - } - while (operation.matches("\\S*")&&!operation.matches("\\d*")&&yes) { - System.out.println("Invalid sequence of symbols to calculate!"); - operation = scanner.nextLine(); - } - if (operation.matches("[^A-Za-z]*")) { - break; - } - } - while (yes) { - String[] arr = operation.split("\\s+"); - String mOperation = ""; - for (int i = 0; i < arr.length; i++) { - if (arr[i].matches("\\++")) { - mOperation += " "; - } else if (arr[i].matches("\\-")&&!arr[i+1].matches("\\-")) { - arr[i + 1] = '-' + arr[i + 1]; - arr[i] = " "; - mOperation += " "; - }else if (arr[i].matches("\\-{2}|\\-{4}|\\-{6}|\\-{8}")){ - mOperation+= " "; - }else if (arr[i].matches("\\-{3}|\\-{5}|\\-{7}|\\-{9}")){ - arr[i + 1] = '-' + arr[i + 1]; - arr[i] = " "; - mOperation += " "; - } - else mOperation += arr[i]; - } - String[] arr2 = mOperation.split("\\s+"); - for (String ch : arr2) { - result += Integer.parseInt(ch); - } - System.out.println(result); - result = 0; + if (operation.equals("/exit")) { + System.out.println("Bye!"); break; + } else if (operation.equals("/help")) { + System.out.println("This program calculate numbers "); + continue; + } else if (operation.matches("/.+")) { + System.out.println("Unknown command"); + continue; + } else if (operation.matches("[a-zA-Z]+")) { + System.out.println("Invalid expression"); + continue; + }else if (operation.matches("\\d+[-+]")){ + System.out.println("Invalid expression"); + continue; + }else if (operation.matches("\\d+\\s+\\d+")){ + System.out.println("Invalid expression"); + continue; + } + System.out.println(calculate(operation)); + } + while (yes) ; + } + public static int calculate(String operation){ + int result = 0; + String[] arr = operation.split("\\s+"); + String mOperation = ""; + for (int i = 0; i < arr.length; i++) { + if (arr[i].matches("\\+")) { + mOperation += " "; + } else if (arr[i].matches("\\-")) { + arr[i + 1] = '-' + arr[i + 1]; + arr[i] = " "; + mOperation += " "; + } else mOperation += arr[i]; + } + String[] arr2 = mOperation.split("\\s+"); + for (String ch : arr2) { + result += Integer.parseInt(ch); } + return result; } } -}