diff --git a/bin/StringCalculator.class b/bin/StringCalculator.class index a937b0c..ddf6e4b 100644 Binary files a/bin/StringCalculator.class and b/bin/StringCalculator.class differ diff --git a/src/StringCalculator.java b/src/StringCalculator.java index 487916b..364b0ca 100644 --- a/src/StringCalculator.java +++ b/src/StringCalculator.java @@ -1,9 +1,54 @@ public class StringCalculator { - public int add(String numbersStr) { + + + public int add(String numbersStr) throws StringCalculatorException { // Returns the sum of the numbers given in numbersStr + int sum = 0; + int[] numberArray = new int[3]; - // not yet implemented - return 0; + if(!numbersStr.isEmpty()) { + + numberArray = splitInput(numbersStr); + for(int i = 0; i < numberArray.length; i++) { + if(numberArray[i] >= 0) { + testOfValue(numberArray[i]); + sum += numberArray[i]; + } else throw new StringCalculatorException(); + } + } + + + return sum; + } + + private int[] splitInput(String numbersToSplit) { + String [] numbers; + int[] sum = new int[3]; + numbers = numbersToSplit.split("[,|\n]"); + if(testOfLength(numbers)) { + for(int i = 0; i < numbers.length; i++) { + sum[i] = Integer.parseInt(numbers[i]); + } + } + + return sum; } + + private boolean testOfLength(String[] testString) { + boolean test; + if(testString.length >= 0 && testString.length < 3) { + test = true; + } else test = false; + return test; + } + + private boolean testOfValue(int value) throws StringCalculatorException { + boolean test; + if(value < 0) { + test = true; + } else throw new StringCalculatorException(); + return test; + } + } diff --git a/src/StringCalculatorException.java b/src/StringCalculatorException.java index da71147..9f37ce4 100644 --- a/src/StringCalculatorException.java +++ b/src/StringCalculatorException.java @@ -1,4 +1,4 @@ public class StringCalculatorException extends Exception { - +// I expect that this doesn't need to edited as there was only talk of throwing it }