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