From 9302e6f68fb33590a5099ea59f1e58a29f168fc7 Mon Sep 17 00:00:00 2001
From: snegard <stiande@stud.ntnu.no>
Date: Tue, 3 Mar 2020 13:01:14 +0100
Subject: [PATCH] Expansion of calc

---
 .../java/resources/CalculatorResource.java    | 50 +++++++++++--------
 1 file changed, 29 insertions(+), 21 deletions(-)

diff --git a/src/main/java/resources/CalculatorResource.java b/src/main/java/resources/CalculatorResource.java
index fa9cb68..d7cedcc 100644
--- a/src/main/java/resources/CalculatorResource.java
+++ b/src/main/java/resources/CalculatorResource.java
@@ -37,10 +37,10 @@ public class CalculatorResource {
          * 1+2,
          * 10000+1000
          */
-        if(expressionTrimmed.matches("[0-9]+[+][0-9]+")) result = sum(expressionTrimmed);
-        else if(expressionTrimmed.matches("[0-9]+[-][0-9]+")) result = subtraction(expressionTrimmed);
-        else if(expressionTrimmed.matches("[0-9]+[*][0-9]+")) result = multiplication(expressionTrimmed);
-        else if(expressionTrimmed.matches("[0-9]+[/][0-9]+")) result = division(expressionTrimmed);
+        if(expressionTrimmed.matches("^\\d+(?:\\s*[+]\\s*\\d+)*$")) result = sum(expressionTrimmed);
+        else if(expressionTrimmed.matches("^\\d+(?:\\s*[-]\\s*\\d+)*$")) result = subtraction(expressionTrimmed);
+        else if(expressionTrimmed.matches("^\\d+(?:\\s*[*]\\s*\\d+)*$")) result = multiplication(expressionTrimmed);
+        else if(expressionTrimmed.matches("^\\d+(?:\\s*[/]\\s*\\d+)*$")) result = division(expressionTrimmed);
 
         return result;
     }
@@ -52,11 +52,13 @@ public class CalculatorResource {
      */
     public int sum(String expression){
         String[] split = expression.split("[+]");
+        int length = len(split)
 
-        int number1 = Integer.parseInt(split[0]);
-        int number2 = Integer.parseInt(split[1]);
-
-        return number1 + number2;
+        for(int i = 0; i<length; i++){
+            int number = Integer.parseInt(split[i]);
+            int sum += number
+        }
+        return sum;
     }
 
     /**
@@ -66,28 +68,34 @@ public class CalculatorResource {
      */
     public int subtraction(String expression){
         String[] split = expression.split("[-]");
-
-        int number1 = Integer.parseInt(split[0]);
-        int number2 = Integer.parseInt(split[1]);
-
-        return number1 - number2;
+        int length = len(split)
+        
+        for(int i = 0; i<length; i++){
+            int number = Integer.parseInt(split[i]);
+            int result -= number
+        }
+        return result;
     }
 
     public int multiplication(String expression){
         String[] split = expression.split("[*]");
+        int length = len(split)
 
-        int number1 = Integer.parseInt(split[0]);
-        int number2 = Integer.parseInt(split[1]);
-
-        return number1 * number2;
+        for(int i = 0; i<length; i++){
+            int number = Integer.parseInt(split[i]);
+            int result *= number
+        }
+        return result;
     }
 
     public int division(String expression){
         String[] split = expression.split("[/]");
+        int length = len(split)
 
-        int number1 = Integer.parseInt(split[0]);
-        int number2 = Integer.parseInt(split[1]);
-
-        return number1 / number2;
+        for(int i = 0; i<length; i++){
+            int number = Integer.parseInt(split[i]);
+            int result /= number
+        }
+        return result;
     }
 }
-- 
GitLab