Skip to content
Snippets Groups Projects
Commit d0573909 authored by Jakob Karevold Grønhaug's avatar Jakob Karevold Grønhaug
Browse files

Merge branch 'calculator-improvements' into 'master'

add support for multiple operatoins per message

See merge request !1
parents eb73b87b 30b28008
No related branches found
No related tags found
1 merge request!1add support for multiple operatoins per message
Pipeline #157949 passed
...@@ -37,10 +37,11 @@ public class CalculatorResource { ...@@ -37,10 +37,11 @@ public class CalculatorResource {
* 1+2, * 1+2,
* 10000+1000 * 10000+1000
*/ */
if(expressionTrimmed.matches("[0-9]+[+][0-9]+")) result = sum(expressionTrimmed); if(expressionTrimmed.matches("^\\d+(?:\\s*[+]\\s*\\d+)*$")) result = sum(expressionTrimmed);
else if(expressionTrimmed.matches("[0-9]+[-][0-9]+")) result = subtraction(expressionTrimmed); else if(expressionTrimmed.matches("^\\d+(?:\\s*[-]\\s*\\d+)*$")) result = subtraction(expressionTrimmed);
else if (expressionTrimmed.matches("[0-9]+[*][0-9]+")) result = multiplication(expressionTrimmed); else if (expressionTrimmed.matches("^\\d+(?:\\s*[*]\\s*\\d+)*$")) result = multiplication(expressionTrimmed);
else if (expressionTrimmed.matches("[0-9]+[/][0-9]+")) result = division(expressionTrimmed); else if (expressionTrimmed.matches("^\\d+(?:\\s*[/]\\s*\\d+)*$")) result = division(expressionTrimmed);
else throw new IllegalArgumentException("Could not parse message");
return result; return result;
} }
...@@ -53,10 +54,13 @@ public class CalculatorResource { ...@@ -53,10 +54,13 @@ public class CalculatorResource {
public int sum(String expression){ public int sum(String expression){
String[] split = expression.split("[+]"); String[] split = expression.split("[+]");
int number1 = Integer.parseInt(split[0]); int sum = 0;
int number2 = Integer.parseInt(split[1]);
return number1 + number2; for (String number : split) {
sum += Integer.parseInt(number);
}
return sum;
} }
/** /**
...@@ -67,10 +71,13 @@ public class CalculatorResource { ...@@ -67,10 +71,13 @@ public class CalculatorResource {
public int subtraction(String expression){ public int subtraction(String expression){
String[] split = expression.split("[-]"); String[] split = expression.split("[-]");
int number1 = Integer.parseInt(split[0]); int retval = Integer.parseInt(split[0]);
int number2 = Integer.parseInt(split[1]);
for (int i = 1; i < split.length; i++) {
retval -= Integer.parseInt(split[i]);
}
return number1 - number2; return retval;
} }
/** /**
...@@ -81,10 +88,13 @@ public class CalculatorResource { ...@@ -81,10 +88,13 @@ public class CalculatorResource {
public int multiplication(String expression){ public int multiplication(String expression){
String[] split = expression.split("[*]"); String[] split = expression.split("[*]");
int number1 = Integer.parseInt(split[0]); int product = 1;
int number2 = Integer.parseInt(split[1]);
return number1 * number2; for (String number : split) {
product *= Integer.parseInt(number);
}
return product;
} }
/** /**
...@@ -95,9 +105,12 @@ public class CalculatorResource { ...@@ -95,9 +105,12 @@ public class CalculatorResource {
public int division(String expression){ public int division(String expression){
String[] split = expression.split("[/]"); String[] split = expression.split("[/]");
int number1 = Integer.parseInt(split[0]); int numerator = Integer.parseInt(split[0]);
int number2 = Integer.parseInt(split[1]);
for (int i = 1; i < split.length; i++) {
numerator /= Integer.parseInt(split[i]);
}
return number1 / number2; return numerator;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment